我从utf-8编码文件中读取数据.然后,此文件的部分内容将用作新创建的文件夹的名称.但是,我的文件夹名称是:
bohou _120328而不是bohouš_120328
如何为新创建的文件夹名称设置正确的编码?谢谢.
编辑:
我正在以这种方式从文件中读取信息:
System.IO.StreamReader file = new System.IO.StreamReader(nameOfFile);
while ((j = file.ReadLine()) != null) {
//manipulating string in j
}
Run Code Online (Sandbox Code Playgroud)
然后用.创建目录
if (Directory.Exists(folder) == false) {
Console.WriteLine("creating directory " + folder);
System.IO.Directory.CreateDirectory(@folder);
}
Run Code Online (Sandbox Code Playgroud)
如果我在我的Windows 7,64位计算机上运行我的应用程序,一切都很好.但是,如果我在其他使用WinXP等旧系统的计算机上运行,编码就错了,看起来就像这样
bohou?_120328
Run Code Online (Sandbox Code Playgroud)
在使用变量创建文件夹之前,我将i写入输出,但一切都很好.甚至文件夹名称也没问题.但不幸的是,只是在我的电脑上.
编辑2:
事情变得更加奇怪.我用过这段代码如何从.NET中的字符串中删除变音符号(重音符号)?删除变音符号,因为没有变音符号的名字对我来说很好.
但是,再次:
我发誓它是相同的代码,因为我复制了我的.exe文件.
调试器说在创建文件夹之前问题已经存在于我的字符串变量中.我不明白,在这种情况下环境如何影响我的变量.
会很高兴解释:-)
在Windows上,您不指定文件或目录名称的编码.在NTFS上,它们总是用基本上是UTF-16的编码.只要您正确读入字符串,CreateDirectory就会执行您想要的操作.我怀疑你要么没有把你的UTF-8文件读成UTF-8,要么你的文件实际上不是UTF-8.在调用CreateDirectory之前,先查看调试器的字符串值.
| 归档时间: |
|
| 查看次数: |
1511 次 |
| 最近记录: |