2016-09-22 4 views
0

こんにちは私は大文字に特殊文字を変換する際に問題が発生しています。mb_strtoupper質問表を表示

通常のstrtoupperではDANIëLのようなものが得られ、mb_strtoupperを適用するとDANI?Lが得られます。ここ は、コードは次のとおりです。 mb_strtoupper(RTRIM($枚[1]、 "") 'UTF-8')

マインドあなた、私はすでに、これは入力に実行されている: のiconv( 'UTF-8 '、' ISO-8859-1 // TRANSLIT '、$ tr-> TD [0])

この理由が考えられますか?それとも何か他に何かありますか?コンバータがUTF-8

あなたの文字列のソースを確認してください期待していたときのLatin1を大文字化しようとしているの

+0

ないはあなたが事前に内部エンコーディングを設定しなかった場合は、このサンプル意志が働きますか?例えば'' Content-Type:text/html; charset = UTF-8')のような、コンテンツタイプのヘッダセットです( '' Content-Type:text/html; 'mb_internal_encoding( 'UTF-8'); –

+0

latin1からutf8までを行う 'mb_convert_encoding($ str、 'UTF-8'、 'Latin1');を調べるかもしれません。 –

+0

mb_internal_encoding( 'UTF-8');およびContent-Type:text/html; charset = UTF-8)は違いはありませんでした。 @Proger_Cbsk iconvの代わりに、またはmb_strtoupperを使用するには? –

答えて

0

典型的な問題。テキストエディタはのLatin1 pagecodeで動作し、UTF-8

$str = "daniël"; //or your rtrim($pieces[1],",") 
$str = mb_convert_encoding($str,'UTF-8','Latin1'); 
echo mb_strtoupper($str, 'UTF-8'); 
//will echo DANIËL 
+0

それは悪い笑になりました。 –

+0

とにかく元のデータは2つのXMLファイルから来ます。それらのコーディングはUTF-8に設定され、mb_detect_encodingは同じことを言います。 データは2つの配列に格納され、それらの2つの配列は、両方の配列の名前が比較された後にdbに格納されます。 すべての場合に、特殊文字がマングルされます。 それでは、適切なアプローチは何でしょうか? –

+0

私は、 'Latin-1'ウェブページの文字セット(各utf8文字でéthingを見るために)の各ステップで古い方法、つまり' echo'データをデバッグしたいと思います。 –

関連する問題