3 of 5 added 156 characters in body

Mathematica, 178 134 bytes

-approx. 6 bytes from CalculatorFeline.

(n=Characters/@{##2};x=n[[1]]/.Table[ToString@i->2+Floor[#/2^(7-i)]~Mod~2,{i,0,7}]/._String->1;""<>Table[n[[x[[i]],i]],{i,Length@x}])&

or

(x=(f=Characters)@#2/.Table[ToString@i->2+Floor[#/2^(7-i)]~Mod~2,{i,0,7}]/._String->1;""<>Table[(f/@{##2})[[x[[i]],i]],{i,Length@x}])&