|
|
1
55
当您再次将UTF-8读回字符串时,您的代码不会将其读入内存,因此它不再使用UTF-8,而是使用UTF-16(尽管在理想情况下,最好考虑使用比任何编码更高级别的字符串,除非被迫这样做)。 要获得实际的UTF-8八位字节,您可以使用:
我遗漏了你留下的同样的处理方法。我稍微赞成以下几点(保留正常处置):
它的复杂程度大致相同,但确实表明,在每个阶段都有一个合理的选择来做其他事情,其中最紧迫的是序列化到内存以外的其他地方,例如文件、TCP/IP流、数据库等。总之,它并没有那么冗长。 |
|
|
2
296
或者如果您还没有使用C#6:
然后:
显然你可以
现在正如乔恩·汉纳所说,这仍然是UTF-16的内部版本,但你可能会在某个时候把它传给其他的东西,把它转换成二进制数据。。。在 那个 点您可以使用上面的字符串,将其转换为UTF-8字节,一切都会很好-因为XML声明将指定“UTF-8”作为编码。
结果:
注意“utf-8”的声明编码,我相信这是我们想要的。 |
|
3
17
|
|
4
5
我发现这篇博文很好地解释了这个问题,并定义了一些不同的解决方案: (死链接已删除) 我认为最好的方法是在内存中完全省略XML声明。实际上是这样的 是 正如@Jon Hanna提到的,这可以通过如下创建的XmlWriter来完成:
|
|
|
J_Cus504 · 在单匹配语句中使用身份变换和多谓词来沉默节点 1 年前 |
|
|
surge3333 · 使用PowerShell构建XML 1 年前 |
|
|
Sandeep · XSLT代码,用于根据条件提取元素值 1 年前 |
|
|
Reto · XSLT 3.0突发流-如何存储/获取另一个分支的值 1 年前 |
|
Ian Kemp · 如何从SelectXml调用本机XPath函数? 1 年前 |