utf8_encode和连字符

时间:2013-02-28 10:35:21

标签: php encoding utf-8 character-encoding json

在我的php文件中:

foreach ($output[0] as $key => $value){
    $output[0][$key] = utf8_encode(strip_tags($output[0][$key]));       
}
echo (json_encode($output));

我在utf8中进行编码,以避免在带有变音符号的字符阻挡时获得null,然后我找到了一个连字符,这是我正在获取表单输出的文本:

H\u00f6rbuch-CDs

然后在做json_encode时我得到null。原始文本是Hörbuch-CDs所以基本上utf8编码正在运行,但由于某种原因它会跳过连字符,我甚至found代码(我认为)应该是U+002D的utf转换,我不确定,因为有大量的连字符,如符号,这意味着存在转换。

我的问题是,为什么utf8_encoding不...编码?我该如何解决这个问题?我应该解析文本并手动替换每个连字符吗?

额外的一点,输出中的文本从排序latin1_german1_ci的数据库中检索,不知道这可能有用。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用iconv而不是utf8_encode?

iconv('LATIN1','UTF-8',strip_tags($output[0][$key]));