我知道在php中已经发布了很多关于阿拉伯语的问题,但我无法解决我的问题,因此我发布了这个问题:
我有一个完全用英语运行的PhP网站.现在,我希望它支持多种语言,包括法语,西班牙语,阿拉伯语,但我无法将它们与一个代码一起使用.问题是,我在很多地方使用了substr(),并且翻译后的字符与substr()无法正常工作.我也试过用mb_substsr(),但没用:(
DB中的字段是"utf8_general_ci",我已经放置了标题('Content-type:text/html; charset = UTF-8'); 在我的代码中允许以UTF-8呈现.
问题是我得到"?????" 代替确切的单词或者我用substr()得到错误的单词
请帮忙!!
小智 15
对于阿拉伯语单词:我想只获得位置2的角色.
$name = "MYNAME";
$Char = substr($Name,2,2);
echo $Char; // print N this okay.
Run Code Online (Sandbox Code Playgroud)
但对于像阿拉伯语这样的工作????,它会返回问号
case 1: $Char = substr($Name,0,1); // Not Work and return question mark
case 2: $Char = substr($Name,1,1); // Not Work and return question mark
case 3: $Char = substr($Name,0*2,1*2); // Work and return "?"
case 3: $Char = substr($Name,1*2,1*2); // Work and return "?"
Run Code Online (Sandbox Code Playgroud)
所以我找到了解决方案:
$Char = mb_substr($Name,1,1,'utf-8'); // Work and return "?".
Run Code Online (Sandbox Code Playgroud)
首先,忘记substr。如果您打算用 UTF-8 编码您的字符串并将它们拆分,那么这mb_substr是唯一可行的解决方案。
您还需要确保MySql的连接编码也是 UTF-8。通过调用执行此操作
mysql_set_charset('utf8');
Run Code Online (Sandbox Code Playgroud)
就在mysql_connect. 如果您使用的是 mysql 扩展(例如 PDO)以外的数据访问层,则有等效的方法来执行此操作。
| 归档时间: |
|
| 查看次数: |
5251 次 |
| 最近记录: |