【发布时间】:2012-12-15 21:29:09
【问题描述】:
我有一个关于 UTF-8 和 htmlentities 的问题。我有两个带有希腊文本的变量,它们似乎都是 UTF-8 编码的(根据 mb_detect_encoding())。当我输出这两个变量时,它们在浏览器中看起来完全一样(也在源代码中)。
当我意识到一个简单的if($var1 == $var2) 总是失败时,我感到很惊讶,尽管它们看起来完全一样。所以我使用 htmlentities 来查看 html 代码是否相同。当我看到第一个变量看起来像这样:Ï�κÏ�λοÏ� 和另一个像这样:ια&ro; 时,我感到很惊讶。两个具有相同编码(UTF-8)的相同单词怎么会不同呢?我该如何解决这个问题?
【问题讨论】:
-
这两个变量是如何分配的?
-
其中一个存储在一个数组中,该数组通过会话传递(在另一个文件中创建),另一个由 curl 获取并存储在一个数组中。
-
你能发布在这两个变量上调用
urlencode的结果吗?这将向我们展示实际存在的字节数。 -
这是一个例子:
%CE%B1%CF%85%CF%84%CE%BF%CE%BA%CE%AF%CE%BD%CE%B7%CF%84%CE%BF(第一个变量),%26alpha%3B%26upsilon%3B%26tau%3B%26omicron%3B%26kappa%3B%26%23943%3B%26nu%3B%26eta%3B%26tau%3B%26omicron%3B(第二个变量)