在我需要用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本身?
提前致谢。
答案 0 :(得分:2)
简单的答案是:您可能使用了错误的编码。从这里我会说你应该使用UTF-8。您可以在解析文档之前下载文档来强制它。
我应该注意,下载URL很棘手:Web服务器经常报告错误的编码。这也是HTML5标准包含编码检测部分的原因。我担心没有简单的通用解决方案 - 我们最终为我们的网络抓取工具实现了我们自己的编码检测算法。
答案 1 :(得分:2)
看起来确实需要更新XML。
你当然可以写出一些东西,它真的是UTF-8,然后把它写回原来的Windows-1252,但为什么要这么麻烦? Windows-1252中的XML就像有人使用他们的智能手机一样,无论如何都要在文艺复兴时期的马戏团穿着骑士。只需从第一行删除不正确的声明即可离开。