2

在我的 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 编码工作,但由于某种原因它跳过了连字符,我什至找到了 utf 转换的代码(我认为)应该是U+002D,我不确定,因为有很多连字符,如符号,意味着存在转换。

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

额外的一点,输出中的文本是从带有排序规则的数据库中检索的latin1_german1_ci,不知道这是否会有所帮助。

4

1 回答 1

0

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

iconv('LATIN1','UTF-8',strip_tags($output[0][$key]));
于 2013-02-28T10:41:50.597 回答