3

私はこのコードを持っています

<?php

$message = "ΓΙΑ ΝΑ ΔΟΥΜΕ ΤΙ ΘΑ ΔΟΥΜΕ.";
$tmp = mb_convert_encoding($message, 'UTF-16BE', 'utf-8');
echo $tmp;
?>

$message 値には、いくつかのギリシャ語が含まれています。「0393 0399 0391 0020 039D 0391 0020 0394 039F 03A5 039C 0395 0020 03A4 0399 0020 0398 0391 0020 0394 039F 03A5 039C」のようなものが欲しいのですが、代わりにブラウザでいくつかの黒いひし形の質問0395が表示されます。

私はそれらの指示に従おうとしました(スタックオーバーフローの質問)が、うまくいきませんでした。また、ファイルのエンコーディングを BOM なしで UTF-8 から UTF-8 に変更しようとしましたが、やはりうまくいきませんでした。

検索中に、この素​​晴らしい Web ページUnicode Code Converterを見つけたので、正しいエンティティを取得しているかどうかをテストできました。

4

2 に答える 2

3

json_encode()16進コードを抽出するために使用できます。

echo strtoupper(str_replace(array('"', '\u'), array('',' '), json_encode('ΓΙΑ ΝΑ ΔΟΥΜΕ ΤΙ ΘΑ ΔΟΥΜΕ.')));
//  0393 0399 0391  039D 0391  0394 039F 03A5 039C 0395  03A4 0399  0398 0391  0394 039F 03A5 039C 0395.

これはどの言語でも機能します。

于 2012-10-02T11:09:09.040 に答える
1

mbstring は UTF-16 をサポートしており、 mb_convert_encoding.

$str = mb_convert_encoding($str, "utf-8", "UTF-16BE");
于 2012-10-02T11:02:57.280 に答える