当我尝试使用DomDocument将UTF-8字符串写入XML文件时,实际上是写入字符串的十六进制表示法,而不是字符串本身。
例如:
ירושלים
代替:ירושלים
任何想法如何解决问题?
好了,你去:
$dom = new DOMDocument('1.0', 'utf-8');
$dom->appendChild($dom->createElement('root'));
$dom->documentElement->appendChild(new DOMText('ירושלים'));
echo $dom->saveXml();
会正常工作,因为在这种情况下,您构造的文档将保留指定为第二个参数的编码:
<?xml version="1.0" encoding="utf-8"?>
<root>ירושלים</root>
但是,一旦将XML加载到未指定编码的Document中,您将丢失在构造函数中声明的所有内容,这意味着:
$dom = new DOMDocument('1.0', 'utf-8');
$dom->loadXml('<root/>'); // missing prolog
$dom->documentElement->appendChild(new DOMText('ירושלים'));
echo $dom->saveXml();
不会使用utf-8编码:
<?xml version="1.0"?>
<root>ירושלים</root>
因此,如果您加载XML,请确保它是
$dom = new DOMDocument();
$dom->loadXml('<?xml version="1.0" encoding="utf-8"?><root/>');
$dom->documentElement->appendChild(new DOMText('ירושלים'));
echo $dom->saveXml();
它将按预期工作。
或者,您也可以在加载文档后指定编码。
进程 c:在函数“主要”中: prog.c:35:20:警告:格式“%d”需要类型为“int”的参数,但参数3的类型为“void * ”[-w format =]printf(" \ n % c \ t % d \ t identifier \ n ",c,p);^ prog. c: 47:24:警告:格式'%d'需要类型'int'的参数,但参数3的类型'void*'[-Wformat=]prin
问题内容: 我正在尝试使用DOMDocument解析一些HTML,但是当我这样做时,我突然失去了编码(至少这对我来说是这样)。 这段代码的结果是我得到了一堆不是日语的字符。但是,如果我这样做: 正确显示。我尝试过saveHTML和saveXML,但都无法正确显示。我正在使用PHP 5.3。 我所看到的: 应该显示什么: 编辑:我已经将代码简化为五行,因此您可以自己对其进行测试。 这是返回的html
我有一个latin1_swedish_ci数据库,其中包含UTF-8字节字符,显示为%c5%a1,%c4%8d,... 我已经将数据库和表从latin1转换为utf8,但我仍然需要修复UTF-8字节字符。 MySQL默认字符集: 我尝试了MySQL函数没有成功: 我真的需要帮助!谢谢.
我的游戏是统一的。当我试图上传游戏apk时,它显示了这个错误。 未优化APK警告: 此APK导致未使用的代码和资源被发送到用户。如果您使用Android应用捆绑包,您的应用程序可能会更小。如果不针对设备配置优化应用,则应用下载和安装在用户设备上的容量会比所需的要大。较大的应用程序安装成功率较低,占用用户设备上的存储空间。 决议: 使用Android应用程序包自动优化设备配置,或使用多个APK自行管
所以我只想使用谷歌云视觉应用编程接口从图像中检测文本或标签。但是当我运行这段代码时,我总是得到: 但我不知道为什么。。。下面是我得到的完整json输出: 我的测试代码如下: 所以问题是。。此代码有什么问题?
问题内容: 网络服务器使用utf-8编码提供响应,所有文件都使用utf-8编码保存,我所知的所有设置都已设置为utf-8编码。 这是一个快速程序,用于测试输出是否有效: 该程序的输出为: 呈现为: 我可能做错了什么?我必须告诉DomDocument正确处理utf-8的具体程度是多少? 问题答案: 需要一个HTML字符串。 HTML 根据其规范使用默认的编码(ISO拉丁字母1号)。那是因为更长,请参