1

我需要将我的 XML 视图的编码设置为 UCS2。我试图将以下内容添加到视图中:

<?xml version="1.0" encoding="UCS-2"?>

<?php header('Content-type: text/xml; charset=UCS-2'); ?>

我也试图把它放在视图的控制器中:

$this->header('Content-type: text/xml; charset=UCS-2');

但是每次我在浏览器中打开 xml 视图时,将其保存到我的桌面并使用 Notepad++ 打开它以检查文件编码是否设置为 UTF-8 而没有 BOM。

我非常感谢有关如何为特定 XML 视图设置编码的任何建议。TIA

4

1 回答 1

1

编码是App.encoding 配置选项中读取的,所以您可以做的是UCS-2在生成 XML 文档的特定操作中相应地更改它。

此外,您可能还必须更改response 的字符集,因为它最初是在CakeResponse构造函数中设置的。

public function xyzAction() {
    Configure::write('App.encoding', 'UCS-2');
    $this->response->charset('UCS-2');

    // ...

    $this->set('_serialize', /* ... */);

    // ...
}

这不仅应该更改encodingXML 文档中的属性,还应该更改标题charset的属性。Content-Type

于 2014-08-25T14:06:17.380 回答