一个Windows-1252编码的XML中重音符号错误

时间:2016-02-25 10:07:52

标签: c# .net xml

在我需要用C#读取的XML中,我找到了诸如

之类的字符
  

DF_BCH_CB="file1.sdf" SDF_BCH_CW="file2.sdf" SDF_BCH_RCB="file3.sdf" SDF_BCH_RCW="file4.sdf" SDF_TT="file5.sdf" ARRAY=($DF_BCH_CB $SDF_BCH_CW $SDF_BCH_RCB $SDF_BCH_RCW $SDF_TT) INDEX=(0 1 2 3 4) N1=$((RANDOM % 5)) SDFFILE_MIN=${ARRAY[$N1]} N2=$((RANDOM % 4)) if [ "$N2" = "$N1" ] ; then N2=$N1+1 fi SDFFILE_MAX=${ARRAY[$N2]} echo $SDFFILE_MIN echo $SDFFILE_MAX

据我所知,我不应该在windows-1252编码的XML中找到这些字符。我可以在C#中修复该问题,还是必须更新XML本身?

提前致谢。

2 个答案:

答案 0 :(得分:2)

简单的答案是:您可能使用了错误的编码。从这里我会说你应该使用UTF-8。您可以在解析文档之前下载文档来强制它。

我应该注意,下载URL很棘手:Web服务器经常报告错误的编码。这也是HTML5标准包含编码检测部分的原因。我担心没有简单的通用解决方案 - 我们最终为我们的网络抓取工具实现了我们自己的编码检测算法。

答案 1 :(得分:2)

看起来确实需要更新XML。

你当然可以写出一些东西,它真的是UTF-8,然后把它写回原来的Windows-1252,但为什么要这么麻烦? Windows-1252中的XML就像有人使用他们的智能手机一样,无论如何都要在文艺复兴时期的马戏团穿着骑士。只需从第一行删除不正确的声明即可离开。