PHP - 使用 file_get_contents 更改阿拉伯字符的字符集
PHP - Changing charset for arabic characters using file_get_contents
我正在使用 google 获取阿拉伯语翻译,这是我的代码:
header('Content-Type: text/html; charset=UTF-8');
$page=file_get_contents("http://www.google.com/translate_t?langpair=en|ar&text=hello",FILE_TEXT);
$page=substr($page,strpos($page,"TRANSLATED_TEXT")+strlen("TRANSLATED_TEXT")+2);
$page=substr($page,0,strpos($page,"';INPUT_TOOL_PATH"));
echo mb_detect_encoding($page); // edited 2015/05/26
echo mb_convert_encoding($page, 'UTF-8', 'ISO-8859-6');
如果您在 file_get_contents 功能上关注 link,您会看到这个词:مرحبا
但是,如果您运行代码,您将得到:كرحبا
如您所见,最后(或第一个)字符不同!
我做错了什么?
将最后一行替换为:
echo iconv('WINDOWS-1256', 'UTF-8', $page);
我认为这是因为您使用了错误的编码,如果您检查页面返回的内容字符集元数据,您会发现它是 windows-1256。
我正在使用 google 获取阿拉伯语翻译,这是我的代码:
header('Content-Type: text/html; charset=UTF-8');
$page=file_get_contents("http://www.google.com/translate_t?langpair=en|ar&text=hello",FILE_TEXT);
$page=substr($page,strpos($page,"TRANSLATED_TEXT")+strlen("TRANSLATED_TEXT")+2);
$page=substr($page,0,strpos($page,"';INPUT_TOOL_PATH"));
echo mb_detect_encoding($page); // edited 2015/05/26
echo mb_convert_encoding($page, 'UTF-8', 'ISO-8859-6');
如果您在 file_get_contents 功能上关注 link,您会看到这个词:مرحبا
但是,如果您运行代码,您将得到:كرحبا
如您所见,最后(或第一个)字符不同!
我做错了什么?
将最后一行替换为:
echo iconv('WINDOWS-1256', 'UTF-8', $page);
我认为这是因为您使用了错误的编码,如果您检查页面返回的内容字符集元数据,您会发现它是 windows-1256。