-1

ヘブライ語で応答を受信するためにAjax呼び出しを使用します。結果は別のサイトからのものであり、ISO-8859-1エンコードされています。私のページはUTF-8です。応答はキリル文字のように見えます:

îéãò ìî÷áì  áæ÷ äçáøä äéùøàìéú  àéï 

ajaxページのヘッダーを使おうとすると:

header('Content-Type: text/html; charset=ISO-8859-1');

私はこの結果を得る:

îéãò ìî÷áì  áæ÷ äçáøä äéùøà ìéú à éï  

utf8_encode応答については役に立たなかったようです。

正しくデコードするにはどうすればよいですか?

ありがとう!

編集:

データを表示する実際のページのエンコーディングは。であることに気付きISO-8859-1ましたが、データを含む応答の特定のヘッダーを見ると、文字セットがに設定されていることがわかりますwindows-1255

私が今やったのは、ヘッダーを次のように設定することです。

header('Content-Type: text/html; charset=windows-1255');

そしてphpの側で私は追加iconvして単純にエコーします:
echo iconv("WINDOWS-1255","UTF-8",$response);

4

4 に答える 4

2

応答はISO-8859-1でエンコードされていませんが、おそらくwindows-1255でエンコードされています。そのように解釈すると、バイトはמידעלמקבלבזקהחברההישראליתאיןです。したがって、windows-1255からutf-8に変換してみてください。

于 2012-05-01T12:08:56.660 に答える
2

あなたがあなたの質問で与える文字列

îéãò ìî÷áì  áæ÷ äçáøä äéùøàìéú  àéï 

Windows 1255(ヘブライ語)コードページのWindows 1252(ラテン語I)表現のように見えます。

EE Windows 1252 î Windows 1255 מ - HEBREW LETTER MEM
E9 Windows 1252 é Windows 1255 י - HEBREW LETTER YOD
E3 Windows 1252 ã Windows 1255 ד - HEBREW LETTER DALET
F2 Windows 1252 ò Windows 1255 ע - HEBREW LETTER AYIN
20 Windows 1252   Windows 1255   - SPACE
EC Windows 1252 ì Windows 1255 ל - HEBREW LETTER LAMED
EE Windows 1252 î Windows 1255 מ - HEBREW LETTER MEM
F7 Windows 1252 ÷ Windows 1255 ק - HEBREW LETTER QOF
E1 Windows 1252 á Windows 1255 ב - HEBREW LETTER BET
EC Windows 1252 ì Windows 1255 ל - HEBREW LETTER LAMED
20 Windows 1252   Windows 1255   - SPACE
20 Windows 1252   Windows 1255   - SPACE
E1 Windows 1252 á Windows 1255 ב - HEBREW LETTER BET
E6 Windows 1252 æ Windows 1255 ז - HEBREW LETTER ZAYIN
F7 Windows 1252 ÷ Windows 1255 ק - HEBREW LETTER QOF
20 Windows 1252   Windows 1255   - SPACE
E4 Windows 1252 ä Windows 1255 ה - HEBREW LETTER HE
E7 Windows 1252 ç Windows 1255 ח - HEBREW LETTER HET
E1 Windows 1252 á Windows 1255 ב - HEBREW LETTER BET
F8 Windows 1252 ø Windows 1255 ר - HEBREW LETTER RESH
E4 Windows 1252 ä Windows 1255 ה - HEBREW LETTER HE
20 Windows 1252   Windows 1255   - SPACE
E4 Windows 1252 ä Windows 1255 ה - HEBREW LETTER HE
E9 Windows 1252 é Windows 1255 י - HEBREW LETTER YOD
F9 Windows 1252 ù Windows 1255 ש - HEBREW LETTER SHIN
F8 Windows 1252 ø Windows 1255 ר - HEBREW LETTER RESH
E0 Windows 1252 à Windows 1255 א - HEBREW LETTER ALEF
EC Windows 1252 ì Windows 1255 ל - HEBREW LETTER LAMED
E9 Windows 1252 é Windows 1255 י - HEBREW LETTER YOD
FA Windows 1252 ú Windows 1255 ת - HEBREW LETTER TAV
20 Windows 1252   Windows 1255   - SPACE
20 Windows 1252   Windows 1255   - SPACE
E0 Windows 1252 à Windows 1255 א - HEBREW LETTER ALEF
E9 Windows 1252 é Windows 1255 י - HEBREW LETTER YOD
EF Windows 1252 ï Windows 1255 ן - HEBREW LETTER FINAL NUN

その文字セットをUTF-8に変換するには、これを行うライブラリ(iconvまたはmb_convert_encoding)を使用するか、自分で行う必要があります。

于 2012-05-01T12:39:41.927 に答える
0

しばらく壁に頭をぶつけた後、私はそれについて率直に考え、非常に簡単に機能するキャラクターのマッピングを作成することにしました。そうでなければ解決策を見つけることができませんでした。

コードは次のとおりです。

$lat = array('à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú');
$heb = array('א','ב','ג','ד','ה','ו','ז','ח','ט','י','ך','כ','ל','ם','מ','ן','נ','ס','ע','ף','פ','ץ','צ','ק','ר','ש','ת');
echo str_replace($lat, $heb, $response);

また、これらのリソースは貴重であることがわかりました。

http://orwell.ru/test/CP/_?cp1252
http://orwell.ru/test/CP/_?cp1255

そしてこれも:

http://kanjidict.stc.cx/recode.php
于 2012-05-01T19:08:48.720 に答える
-1

PHPをでコンパイルし'--enable-zend-multibyte'ます。
それならこれを試してみてください

mb_convert_encoding("FOO","UTF-8","ISO-8859-1");

変換するだけでよい場合。

于 2012-05-01T12:16:01.717 に答える