我看到了奇怪的事情!
看,这是我的阵列:
$array = array('حساب داری', 'صنایع', 'مهندسی سخت افزار', 'مهندسی عمران');
print_r($array):
Array
(
[0] => حساب داری
[1] => صنایع
[2] => مهندسی سخت افزار
[3] => مهندسی عمران
)
上面数组的值包含utf-8字符,现在是foreach:
$test = '';
foreach($array as $key => $value){
$test.= " ('1', '$value'), ";
}
输出结果为:
('1', 'حساب داری'), ('1', 'صنایع'), ('1', 'مهندسی سخت افزار'), ('1', 'مهندسی عمران'),
如你所见,这一切都错了......
为什么会发生这种情况以及如何解决这个问题?
提前致谢
P.S:使用一些utf-8解码功能无效。
答案 0 :(得分:5)
字符串的开头被解释为从左到右,其余字符从右到左。您可以通过将整个文档设置为从右到左来解决故障:
<html dir="rtl">
如果您希望文档主要从左到右显示,则必须在每个阿拉伯字符串后添加一些控制字符以强制更改为LTR,因为数字和标点符号不够“强”。如果您的输出包含LTR字母(如A),它也将按预期呈现;测试这些:
foreach($array as $key => $value){
$test.= " ('1', '$value‎'), ";
}
foreach($array as $key => $value){
$test.= " ('A', '$value'), ";
}