3

这就是我想要实现的目标:

تلر

这就是问题:

$a = "ت";
$l = "ﻝ";
$z = "ر";

$word = $a.$l.$z;
echo $word;

印刷:

ت‌ل‌ر 

尽管:

echo "تلر";

印刷:

تلر

实际上没有空格,但是如果您尝试此代码(请记住允许 utf-8),您会看到字母不会组合。它在字母直接组合时起作用。但是当我一一结合时,就像:$a.$b.......他们不会结合。

有什么想法可以解决这个问题吗?

4

2 回答 2

2

你的第二个单字符是 U+FEDD 而第二个字符是 U+0644 تلر。使用正确的字符,它可以工作:

$a = "ت";
$l = "ل";
$z = "ر";
var_dump("تلر" === $a.$l.$z);

您可能想看看如何将 Unicode 转义序列(如“\u00ed”)解码为正确的 UTF-8 编码字符?

于 2012-12-26T21:28:09.823 回答
0

尝试使用这种编码而不是 utf-8

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

编辑:

最流行的阿拉伯语编码是:

      Windows-1256, ISO 8859-6, and UTF-8.

编辑:因为它会工作,你必须将你的编辑器也设置为编码windows-1256,如果你从数据库中获取字符串,你必须将数据库的编码设置为windows-1256并且应该工作

于 2012-12-26T21:11:55.127 回答