【问题标题】:php json_encode euro symbol for androidphp json_encode 用于 android 的欧元符号
【发布时间】:2013-02-26 22:28:36
【问题描述】:

我正在从 php 服务加载 android 应用程序中的数据。 在 php 中,我使用 json_encode 来转换我的数据。 现在我有一个带有 字符的字符串。 json_encode 将其转换为 \u0080,但据我所知,实际正确的 unicode 应该是 \u20AC。 通常这不是问题,但Droid Sans 字体只会将\u20AC 呈现为欧元符号。

我的问题:有没有办法让 字符正确转换(我不在乎是Java 还是PHP,虽然我更喜欢php 解决方案)没有 使用任何字符串替换或正则表达式等。 替换看起来很丑陋,可能还有更多我不知道的符号没有正确转换。

【问题讨论】:

  • 你的欧元字符来自哪里? 0080 听起来像是来自非 UTF8 编码
  • 发布您的 PHP 和 Java 代码。两者都需要编码。
  • \u0080 对应一个 html 实体 €/€,即欧元

标签: java php android json encoding


【解决方案1】:

\u0080 表示输入字符是\x80,这是Windows-1252 中的欧元符号。所以我假设你的字符串是用这个字符集编码的,那么你应该将它转换为 UTF-8,因为json_encode 只适用于 UTF-8 输入:

$string = iconv('Windows-1252', 'UTF-8', $string);

【讨论】:

  • 是的,就是这样,所以 utf8_encode 不适用于 1252 编码的字符串?因为我在用它
  • 是的,utf8_encode 将 ISO 8859-1 转换为 UTF-8,仅此而已。 PHP 及其专用函数... ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
  • 2010-11-26
  • 2014-11-11
  • 2012-05-14
  • 1970-01-01
相关资源
最近更新 更多