php utf8_encode - 字符前面加上\u

标签 php unicode utf-8

我有一个从数据库中获取的 ISO 字符串,当我对它进行 utf8_encode 时,我得到的是\u00f6 而不是 Ö。这混淆了 ajaxes 这个 PHP 脚本的 javascript/html。为什么会有\u00f6 而不是 Ö?如何获得 Ö?

编辑: 好的,我做了一些更多的实验,结果证明这是由 utf8_encode 和 json_encode 的组合引起的。尽管如果我根本不使用 utf8_encode,该值在 json 中将为 null。

json_encode(array("city"=>utf8_encode("göteborg")))

最佳答案

utf8_encode 不会将字符编码为 \uxxxx,因为您自己发现这是 json_encode 执行此操作。这很好,因为 JSON 格式指定了此行为。如果您的客户端正确地将 JSON 字符串解码为 Javascript 数据类型,则 \uxxxx 转义符将转换为正确的 Unicode 字符。

至于 json_encode 如果您的字符串是 Latin1 编码则丢弃字符:它没有在手册页上明确说明,但 Javascript 和 JSON 完全基于 Unicode,所以我怀疑 Latin1 是一种无效且意外的编码与 JSON 字符串一起使用,因此它会中断。

关于php utf8_encode - 字符前面加上\u,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7684929/

相关文章:

php - 如何获取MySQL列中两个值之间的行?

php - mysql无法正常工作

javascript - 如何使用全词正则表达式搜索梵文文本?

ruby - ActionMailer 字符串编码

java - UTF-8 到 CP864(阿拉伯语)转换

php - 使用 php 脚本将 mySQL 切换到本地服务器访问被拒绝

php - 过滤数据库行中的单词,并统计它们

javascript - 如何在 JavaScript 中使用支持 Unicode 的正则表达式?

python - 如何在 Python 中使用正则表达式和 re.sub 查找所有出现的 unicode 字符的大写和小写字母?

iphone - UTF-8 字符问题(iOS、NSString)