我使用Ajax调用来接收希伯来语的响应。结果来自不同的网站,并ISO-8859-1
编码。我的页面是UTF-8
。
回应看起来像西里尔:
îéãò ìî÷áì áæ÷ äçáøä äéùøàìéú àéï
当我尝试在ajax页面上使用标题时:
header('Content-Type: text/html; charset=ISO-8859-1');
我得到了这个结果:
îéãò ìî÷áì áæ÷ äçáøä äéùøà ìéú à éï
回复 utf8_encode
似乎没有帮助。
我该怎么做才能正确解码?
谢谢!
修改
我现在注意到显示数据的实际页面的编码为ISO-8859-1
,但查看带有数据的响应的特定标头,我看到charset设置为windows-1255
我现在做的是将标题设置为:
header('Content-Type: text/html; charset=windows-1255');
在php的一边,我添加了iconv
,只需回显:
的 echo iconv("WINDOWS-1255","UTF-8",$response);
答案 0 :(得分:2)
响应不是ISO-8859-1编码,但可能是windows-1255编码;这样解释,字节是מידעלמקבלבזקהחברההישראליתאין。所以尝试从windows-1255转换为utf-8。
答案 1 :(得分:2)
您在问题中提供的字符串
îéãò ìî÷áì áæ÷ äçáøä äéùøàìéú àéï
看起来像Windows 1255(希腊语)代码页的Windows 1252(Latin 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
)或自行完成。
答案 2 :(得分: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
答案 3 :(得分:-1)
使用'--enable-zend-multibyte'
编译PHP
那么请试试这个
mb_convert_encoding("FOO","UTF-8","ISO-8859-1");
如果您只需转换。