日期:2014-05-18  浏览次数:20715 次

问一个关于文件名的问题
中文windows系统默认的内码是GBK的,因此保存文件的时候文件名也是GBK的,现在因为特殊需求我想在GBK的内码windows环境下保存一个中文文件名是UTF8编码的文件,请问有什么办法?

我的方法是:
byte[] u8 = Encoding.UTF8.GetBytes("大宝天天见");
string filename = Encoding.Default.GetString(u8);
File.Create("C:\\" + filename);

程序运行到第3行报错路径中具有非法字符。

请问如何保存文件名是utf8编码的中文文件?

------解决方案--------------------
"C:\\"前面加个@试下 或者是@"c:/"
------解决方案--------------------
byte[] u8 = Encoding.GetEncoding(0).GetBytes("大宝天天见");
string filename = Encoding.Default.GetString(u8);

File.Create("C:\\" + @filename);