PHP print() Arabic string

2019-02-25 09:32发布

When I try and execute this code to print out an Arabic string: print("إضافة"); I get this output: إضاÙØ©. If I utf8_decode() it I'll get ?????. I have "AddLanguage ar" in my apache configuration but it doesn't help. How do i print out this Arabic string?

5条回答
放荡不羁爱自由
2楼-- · 2019-02-25 10:03

You may also want to check your browser font if it has Arabic support. Stick to common fonts like Arial Unicode and Times New Roman.

查看更多
唯我独甜
3楼-- · 2019-02-25 10:06

Well,

First: Add by the beginning of HTML page

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

second: if you are using AJAX encode data using encodeURIComponent

Third: First line of your PHP page should be

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

and decode the data sent to PHP using urldecode

Regards,

查看更多
ゆ 、 Hurt°
4楼-- · 2019-02-25 10:07

It might be necessary to indicate to the browser which charset you are using -- I'm guessing it's UTF-8.

IN order to achive that, you might try putting this portion of code at the beginning of your script, before any output is generated :

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


[utf8_decode][1] will try to decode your string from UTF-8 to latin1, which is not suited for Arabic characters -- hence the '?' characters.

查看更多
做自己的国王
5楼-- · 2019-02-25 10:15

Also set your page language to utf8 eg:

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

and then see it if worked. If that still doesn't work, go and check this out, it is complete solution for the arabic language using PHP:

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

You may want to check out this too:

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

查看更多
萌系小妹纸
6楼-- · 2019-02-25 10:21

You may want to set

default_charset = "utf-8"

in your php.ini. Default charset directive instructs the server to produce correct content type header.

You can also do it in runtime:

ini_set('default_charset', 'utf-8');
查看更多
登录 后发表回答