【问题标题】:UTF-8 in XML and JSON SchemaXML 和 JSON 模式中的 UTF-8
【发布时间】:2011-11-21 05:33:22
【问题描述】:

我对 XML 和 JSON Schema 中的 utf-8 有点困惑

我有以下数组

$array = array(
    array('name'=>'abc', 'text'=>'اسلسصثصض صثصهخه عه☆anton & budi☆' ),
    array('name'=>'xyz', 'text'=>'nice' ),
);

当我将其转换为 XML 它给了我这个结果

<?xml version="1.0"?>
<response>
  <item>
    <name>abc</name>
    <text>&#x627;&#x633;&#x644;&#x633;&#x635;&#x62B;&#x635;&#x636; &#x635;&#x62B;&#x635;&#x647;&#x62E;&#x647; &#x639;&#x647;&#x2606;anton '&lt;&amp;&gt;' budi&#x2606;</text>
  </item>
  <item>
    <name>xyz</name>
    <text>nice</text>
  </item>
</response>

为什么结果不如下:

<?xml version="1.0"?>
<response>
  <item>
    <name>abc</name>
    <text>اسلسصثصض صثصهخه عه☆anton &amp; budi☆</text>
  </item>
  <item>
    <name>xyz</name>
    <text>nice</text>
  </item>
</response>

当我将其转换为 JSON 它会给我结果:

[
  {
    "name": "abc",
    "text": "\u0627\u0633\u0644\u0633\u0635\u062b\u0635\u0636 \u0635\u062b\u0635\u0647\u062e\u0647 \u0639\u0647\u2606anton '<&>' budi\u2606"
  },
  {
    "name": "xyz",
    "text": "nice"
  }
]

为什么不这样:

[
  {
    "name": "abc",
    "text": "اسلسصثصض صثصهخه عه☆anton &amp; budi☆"
  },
  {
    "name": "xyz",
    "text": "nice"
  }
]

这是在 xml 或 json 中使用 utf-8 字符的任何方式吗? 还是那是标准?

【问题讨论】:

  • 您是否将文件保存为 utf-8 w3schools.com/xml/xml_encoding.asp
  • 您的转换工具似乎有问题。 “为什么不是这样”的 json 样本是有效的 json。
  • 这很好并且有效的 XML/JSON。您的库只是转义了 XML/JSON 标准定义的字符。
  • @Sam88 : 如何在 php 中使用 xml 作为 utf-8 编码?

标签: php xml json utf-8


【解决方案1】:

这可能是为了诊断和提高正确传输的可能性 - 系统通常非常擅长传输 ASCII,但在涉及其他编码时,许多系统编写得不好。

当然,应该可以正确传输 UTF-8 编码形式,但我怀疑您使用的编码器只是保守的。例如,这意味着您不需要确保在 HTTP 级别上正确使用它。主要的是它仍然会给出正确的整体文本。这是否会给您带来一些实际问题,或者您只是对转义的使用感到惊讶?

【讨论】:

  • 对于 XML(五巨头)应该只需要使用 htmlspecialchars()XMLWriter() 应该足够了 - 如果我错了,请有人纠正我。
  • @YzmirRamirez:我不确定你的意思 - 但我建议即使在这里转义是不必要的,它不应该是有害运输大一点。
  • 更正它不应该是必要的,它似乎没有害处。我想知道 OP 使用的任何编码器是否可以选择写入 &lt;![CDATA[...]]&gt; 标签,您不需要将内容转义到现在的水平。
猜你喜欢
  • 2011-03-16
  • 2018-11-17
  • 1970-01-01
  • 2014-08-29
  • 2012-11-07
  • 2011-09-14
  • 2012-05-07
  • 2021-04-04
  • 1970-01-01
相关资源
最近更新 更多