将文件路径转换为UTF-8

时间:2014-05-30 06:34:13

标签: c# .net utf-8 utf-16 utf

我想获取,打印并向文本文件写入名为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文件时,&等路径中的特殊字符会发生变化。

有人能指出我的解决方案吗?

1 个答案:

答案 0 :(得分:2)

您正在编写XML文件,而不是纯文本文件。在XML中,&符号需要转义为&

所以你得到的结果是完全可以的。它甚至需要像这样。

我建议使用可以正确验证和显示XML的应用程序打开XML文件。可以更容易地看到文件是正确的。

您的代码中的UTF-8转换不是必需的。如果XML文件是以UTF-8编码的,那么您的XML类将负责任何所需的转换。