使用JavaScript创建XML文件时遇到编码错误-有什么方法可以防止这种情况发生吗?

使用JavaScript创建XML文件时遇到编码错误-有什么方法可以防止这种情况发生吗?,javascript,xml,encoding,Javascript,Xml,Encoding,我正在服务器端JavaScript中从数据库动态创建一个XML文件。XML输出的定义是 <?xml version="1.0" encoding="utf-8"?> 我假设它不认为此人姓名中的最后一个字符是有效的utf-8字符 我是否可以对文本进行一些常规转换,以将这些字符替换为不会导致编码错误的字符 或者,是否有一个“更宽松”的XML编码定义,我可以定义它,在浏览器中打开检查XML时不会导致错误 谢谢 doug您尝试过“utf-16”吗?我只是尝试过将序言中的规范更改为utf-1

我正在服务器端JavaScript中从数据库动态创建一个XML文件。XML输出的定义是

<?xml version="1.0" encoding="utf-8"?>
我假设它不认为此人姓名中的最后一个字符是有效的utf-8字符

我是否可以对文本进行一些常规转换,以将这些字符替换为不会导致编码错误的字符

或者,是否有一个“更宽松”的XML编码定义,我可以定义它,在浏览器中打开检查XML时不会导致错误

谢谢


doug

您尝试过“utf-16”吗?我只是尝试过将序言中的规范更改为utf-16,并重新生成XML,Chrome报告的错误与此完全相同。我真的不知道该怎么办。我自己也不确定这个字符是否是utf-8编码的。它看起来像一个重音的o。但如果它最初真的是ISO-8859-1呢。说到这件事,我就被困住了。现在我所能想到的就是用一个非重音的o替换这个角色。但这是不对的。我可能还会遇到其他类似的角色。你只是说:“来了一些UTF-8。”。Chrome回答说:“那不是真的。”。假设您正在发送一个PDF文件:很明显,将其声明为“音乐编码为MP3”不会使其播放。你绝对需要找出你的数据编码是什么;试图让Chrome忽略错误是毫无意义的。我确实意识到这一点。:)然而,我不明白怎么做。显然,有些用户名被存储在不同的编码中。如果我将该1个字符更改为未带重音的“o”,则整个文件将进行验证。但我在这里要问的是,在构建XML时,是否有一种检查这些字符的方法,以确保它们是有效的utf-8字符。否则,我唯一能想到的就是一个接一个地查找它们,并在生成XML时用一个无重音字符进行替换。我在这里迷路了。我理解为什么XML无法验证。我真的不知道该怎么办。试着发布一些代码,展示如何生成文件,并询问如何使用utf-16或任何其他支持特殊字符的编码生成XML。我知道如何在.NET中实现这一点,所以我想一定有一种方法可以在您当前使用的编程语言中实现这一点。
Balanzó