正規表現が正しく動く(実体参照(&#xnum;)をsjis に変換
正規表現がこれだと動く。
何のときに $1 が使えるのか不明。
何のときに $1 が使えるのか不明。
require "MyLibs/strcode_hex.cgi"; #←うち専用 strcode_hexJIS をこのファイルに保存してある $a ="&#x".sprintf("%04x",39135).";"; $a.="&#x".sprintf("%04x",29609).";"; $a.="&#x".sprintf("%04x",12539).";"; $a.="&#x".sprintf("%04x",12481).";"; $a.="&#x".sprintf("%04x",12519).";"; $a.="&#x".sprintf("%04x",12467).";"; $a=strcode_hexJIS($a); $b=strcode_hexJIS("情報時代"); tracesub("#======================================================================="); tracesub("$a"); tracesub("$b"); tracesub("#======================================================================="); # # 結果 #
# ============================================================================ sub strcode_hexJIS # ============================================================================ { local($a)=$_[0]; use Encode; use Encode qw/ from_to /; use Encode 'decode'; use Encode 'encode'; $a=~ s/&#x([0-9A-Fa-f]{4});/chr(hex($1))/ge; $a=encode('utf-8', $a); $a=strcode_conv("utf8N2sjis",$a); return($a); }
スポンサーリンク