gpt4 book ai didi

PHP SimpleXML asXML 写入ANSI编码文件

转载 作者:搜寻专家 更新时间:2023-10-31 21:16:45 24 4
gpt4 key购买 nike

我正在尝试将一些内容写入 XML 文件,但我确实遇到了特殊字符的问题。

我想写的内容是通过 $_GET 提交给脚本的,所以我假设它已正确解码为 UTF-8 内容。

$write = $_GET['content'];

将被喂食:

file.php?content=s%F6per

在 PHP 中,我执行以下操作:

$xml = simplexml_load_file('file.xml');
$newentry = $xml -> addChild('element',$write);
$xml -> asXML($xml_filename);

打开的 XML 文件是 UTF-8 编码的。当我编写没有任何这些“问题字符”的内容时,asXML 将再次以 UTF-8 格式保存文件。一旦我插入特殊字符,它就会以 ANSI 编码保存,弄乱文件,因为我将无法打开它(脚本会提示不正确的编码)。

我错过了什么?阅读手册给我的印象是我应该一切正常(即不要弄乱 $_GET['content']),所以很遗憾我没有任何线索。

非常感谢!

最佳答案

你的特殊字符看起来不是 UTF-8,而是 ISO-8859-1 字符

请看这里 - http://www.degraeve.com/reference/urlencoding.php

可能的解决方案

$newentry = $xml->addChild('element', htmlentities($write));

或者

$newentry = $xml->addChild('element', iconv('ISO-8859-1', 'UTF-8', $write));

题外话,请避免使用$_GET 将内容写入文件或插入数据库,有风险

关于PHP SimpleXML asXML 写入ANSI编码文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6940104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com