从 XML 中移除隐藏字符

Remove hidden characters from XML

如何删除文件开头(Allitems 之前)的这些隐藏字符?当我定期打开文件时,当然看不到它们。使用检测到它们的在线工具。

我如何首先防止它们出现(使用一些生成 XML 的 SaaS)?

XML document: 
1   <Allitems>
2   
3   <Item>
4   <PostTitle>Must Have 1000 Hacking Tut</PostTitle>
5   <UserName>Mr.HacKer</UserName>
6   <ForumName>Advanced Hacking Tutorials</ForumName>
7   <PostLink>http://offensivecommunity.net/showthread.php?tid=676</PostLink>
8   <PostContent>HEllo IHF Guys

这是文件的 Byte Order Mark (BOM), an optional 4-byte indicator of the endianness(字节顺序)。如果您不控制文件的来源,您无法首先阻止 BOM 的出现,但您可以将其删除...

BOM 移除

您可以按照 W3C for the removal the BOM from HTML pages 提供的说明进行操作,这些说明也适用于 XML。其他各种 Stack Overflow 答案也提供了删除 BOM 的方法:

  • Using VIM:

    # vim file.xml
    :set nobomb
    :wq
    
  • Using a standalone Windows freeware program, File BOM Detector.

  • Using a freeware Windows editor, Notepad++:在格式菜单下,select以无BOM的UTF-8编码