ホームページ  >  記事  >  バックエンド開発  >  文字列HTMLエンティティの変換

文字列HTMLエンティティの変換

WBOY
WBOYオリジナル
2016-06-23 14:19:26846ブラウズ

元の文字列: http://www.qdta.cn/xxw/xxInfo.asp?xxlx=旅游热讯&id=12939
変換したい文字列: http: / /www.qdta.cn/xxw/xxInfo.asp?xxlx=旅行ホットニュース&id=12939
どのような関数が使用されていますか?


ディスカッションへの返信 (解決策)

function unescape($str) {  $str = rawurldecode($str);  preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",$str,$r);  $ar = $r[0];print_r($ar);  foreach($ar as $k=>$v) {    if(substr($v,0,2) == "%u")      $ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));    elseif(substr($v,0,3) == "&#x")      $ar[$k] = iconv("UCS-2","UTF-8",pack("H4",substr($v,3,-1)));    elseif(substr($v,0,2) == "&#") {echo substr($v,2,-1)."<br>";      $ar[$k] = iconv("UCS-2","UTF-8",pack("n",substr($v,2,-1)));    }  }  return join("",$ar);}

function unescape($str) {  $str = rawurldecode($str);  preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",$str,$r);  $ar = $r[0];print_r($ar);  foreach($ar as $k=>$v) {    if(substr($v,0,2) == "%u")      $ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));    elseif(substr($v,0,3) == "&#x")      $ar[$k] = iconv("UCS-2","UTF-8",pack("H4",substr($v,3,-1)));    elseif(substr($v,0,2) == "&#") {echo substr($v,2,-1)."<br>";      $ar[$k] = iconv("UCS-2","UTF-8",pack("n",substr($v,2,-1)));    }  }  return join("",$ar);}


関数を自分で書かなければならないことがわかりました。理解できないのは、なぜ一部のファイルを utf-8 形式に変換する必要があるのか​​ということです。私はgbkです。出力後、utf-8をgbkに変更すると、通常の中国語が出力されます。

<script language="javascript">code=26053;str = String.fromCharCode(code);document.write(str);</script>


など、JSを直接使用する方法があります。 .

<script language="javascript">code=26053;str = String.fromCharCode(code);document.write(str);</script>


など、ありがとうございますが、この部分は php で処理する必要があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。