2011-01-25 23 views
1

おそらく非常に単純な質問ですが、私はどのようにutf8文字を読み込み可能な文字にデコードできるのでしょうか。例えばUTF8実デコード

L'のをheureの最高裁

の中へ

L'heure suprême 

私は次のことを試してみました:

utf8_encode , utf8_decode And `html_entity_decode($string, ENT_COMPAT, "UTF-8");` 

出力は私に正しい文字を与えたことはありません、例えば、

html_entity_decode($string, ENT_COMPAT, "UTF-8"); returned L'heure suprême 

EDIT: それはhtml_entity_decode($string, ENT_COMPAT, "ISO-8859-15");は、あなたの結果が正しく表示されるようにするために、あなたはエンコーディングが使用されている受信側を、伝える必要がありますためにトリック

+1

これらは** HTMLエンティティ**であり、UTF-8文字ではありません。 –

答えて

1

をした、愚かな質問だった:

header('Content-Type: text/plain; charset=UTF-8'); 

$string = 'L'heure suprême'; 
print html_entity_decode($string, ENT_COMPAT, "UTF-8"); 

明示的に文字セットの名前を付けない出力は、未定義の動作を引き起こします。今日早く、誰かがUnicodeと文字セットについてa great article by Joel Spolskyを提案しました。それは良い読書のためになり、私はあなたがそれを "見過ごす"ことをお勧めします。

+0

これは表示用ではなく、さまざまなソースで一致します。 –

+0

@PaoloあなたはまだUTF-8を使っている方が良いです。あなたの 'ISO-8859-1'でエンコードされた文字列は、その中にたくさんの疑問符(' L'heure supr?me')で終わるかもしれません。 –

+0

私のテーブルはユニコードですが、私のソース(別のisoウェブサイト)では、時々名前を比較する必要があり、文字チャプターが異なる場合は動作しません。 –