2

我看到了一些奇怪的东西!

看,这是我的数组:

$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', 'مهندسی عمران'), 

如你所见,一切都错了......

为什么会发生这种情况以及我将如何解决这个问题?

提前致谢

PS:使用一些 utf-8 解码功能不起作用。

4

1 回答 1

5

字符串的开头被解释为从左到右,其余的被解释为从右到左。您可以通过将整个文档设置为从右到左来解决故障:

<html dir="rtl">

如果您希望文档主要显示为从左到右,则必须在每个阿拉伯字符串后添加一些控制字符以强制更改为 LTR,因为数字和标点符号不够“强”。如果您的输出包含 LTR 字母(如 A),它也会按预期呈现;测试这些:

foreach($array as $key => $value){
    $test.= " ('1', '$value&lrm;'), ";   
}

foreach($array as $key => $value){
    $test.= " ('A', '$value'), ";   
}
于 2013-10-10T15:19:32.073 回答