繁体   English   中英

XML和JSON模式中的UTF-8

[英]UTF-8 in XML and JSON Schema

我对XML和JSON模式中的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字符吗? 还是那是标准?

这可能是出于诊断的目的,也可能是正确传输的可能性更大-系统通常在传输ASCII方面相当不错,但是在涉及其他编码时,许多系统的编写情况并不理想。

当然,应该可以正确地传输UTF-8编码形式,但是我怀疑您使用的编码器只是保守的。 例如,这意味着您无需确保在HTTP级别正确使用它。 最主要的是,它仍将总体上提供正确的文本。 这是给您造成一些实际问题,还是您只是对转义的使用感到惊讶?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM