YouTubeのRSSを読み込む際に、文字列がunicode化(エンティティーコード化)されていたので、
それを文字化するphpのサブルーチンを作成したので公開します。
unicode化というのは、
1 2 |
久 し |
というようなコードのことです。
では早速コードの公開です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
function decUnicode($data, $enc){ $data = preg_replace('/&#(\d+);/', "<>$1<>", $data); $arySplitVal = split('<>', $data); $le = count($arySplitVal); $xout = ""; for ($i=0;$i<$le;$i++) { if(preg_match("/^[0-9]+$/", $arySplitVal[$i])){ $xout .= mb_convert_encoding(pack("H*", dechex($arySplitVal[$i])), $enc, "UCS-2"); }else{ $xout .=$arySplitVal[$i]; } } return $xout; } |
ネット上に、従来から公開されているコードを改良したものです。(ソースが行方不明になっております。ご指摘があれば、ご連絡下さい)
従来のものですと、既にローマ字のものはunicode化されていないので、思った変換になりません。
上記のコードならば、その問題をクリアしております。