UTF-8文字コード(またはEUCコード)でURLエンコードされた文字列をsjisに変換するプログラムです.
1バイト文字ならそのまま,%XXであれば,%をとりXXを16進$hex2.で変換し,
それをUTF-8のフォーマット$UTF8X.で,sjisにします.
eucでエンコードされている場合は,encoding="euc-jp"に変えれば変換できます.
*********************************************************
UTF-8 URL-encode decoding
081202 翔
*********************************************************;
data;
file "tmp.txt";
encode='EXCEL+%E3%82%B0%E3%83%A9%E3%83%95'; /*UTF-8がエンコードされている*/
*encode='EXCEL+%A5%A6%A5%A3%A5%AD%A5%DA%A5%C7%A5%A3%A5%A2'; /*EUCがエンコードされている*/
length hex $ 100;
length char $ 1;
length char2 $ 2;
p=1;
q=1;
do until (p>length(encode));
char=substr(encode,p,1);
char2=substr(encode,p+1,2);
if char="%" then do;
substr(hex,q,1)=input(char2,$hex2.);
p=p+3;
q=q+1;
end;
else do;
substr(hex,q,1)=char;
p=p+1;
q=q+1;
end;
end;
put hex;
run;
data;
infile "tmp.txt" encoding="utf-8"; /*UTF-8の場合*/
*infile "tmp.txt" encoding="euc-jp"; /*EUCの場合*/
input ;
put _infile_;
run;
/* EXCEL+グラフ */
/*EXCEL+ウィキペディア*/