PHP print()阿拉伯字符串

时间:2010-02-22 07:48:19

标签: php apache arabic

当我尝试执行此代码以打印出阿拉伯字符串时:print("إضافة");我得到此输出:إضاÙØ©。如果我utf8_decode()它我将获得?????。我的apache配置中有“AddLanguage ar”但它没有帮助。如何打印出这个阿拉伯字符串?

5 个答案:

答案 0 :(得分:9)

还将您的页面语言设置为utf8,例如:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

然后看看它是否奏效。如果仍然不起作用,那就去看看,这是使用PHP的阿拉伯语的完整解决方案:

http://www.ar-php.org/en_index_php_arabic.html

您也可以查看以下内容:

http://www.phpclasses.org/browse/package/2875.html

答案 1 :(得分:8)

可能需要向浏览器表明您使用的是哪个字符集 - 我猜它是UTF-8。

为了实现这一点,您可以尝试在生成任何输出之前将这部分代码放在脚本的开头:

header('Content-type: text/html; charset=UTF-8');


[ utf8_decode ][1]会尝试将您的字符串从UTF-8解码为latin1,这不适合阿拉伯字符 - 因此'?'个字符。

答案 2 :(得分:1)

您可能想要设置

default_charset = "utf-8"

php.ini中。 Default charset指令指示服务器生成正确的内容类型标头。

您也可以在运行时执行此操作:

ini_set('default_charset', 'utf-8');

答案 3 :(得分:0)

如果支持阿拉伯语,您可能还需要检查浏览器字体。坚持常用字体,如Arial Unicode和Times New Roman。

答案 4 :(得分:0)

那么,

首先:在HTML页面的开头添加

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

第二: 如果您使用 encodeURIComponent

使用AJAX编码数据

第三: PHP页面的第一行应该是

header('Content-Type: text/html; charset=utf-8'); 

使用 urldecode

解码发送给PHP的数据

此致