我想获取,打印并向文本文件写入名为A&T+X-8_L_R1.png
的文件的磁盘上的完整路径,但是当我打印它时,我得到A&T+X-8_L_R1.png
。
AFAIK我需要更改编码。我做了一个搜索,发现了这个潜在的解决方案,但它没有工作:
String filePathString = relativeUri.ToString();
byte[] bytes = Encoding.Default.GetBytes(filePathString);
filePathString = Encoding.UTF8.GetString(bytes);
filePathNode.SetValue(filePathString);
这是我班级的完整代码:http://pastebin.com/dZLGeS8p
该类以递归方式搜索*.png
个文件,并从其路径创建XML
结构。保存XML
文件时,&
等路径中的特殊字符会发生变化。
有人能指出我的解决方案吗?
答案 0 :(得分:2)
您正在编写XML文件,而不是纯文本文件。在XML中,&符号需要转义为&
。
所以你得到的结果是完全可以的。它甚至需要像这样。
我建议使用可以正确验证和显示XML的应用程序打开XML文件。可以更容易地看到文件是正确的。
您的代码中的UTF-8转换不是必需的。如果XML文件是以UTF-8编码的,那么您的XML类将负责任何所需的转换。