当FileName中包含中文时,可以尝试将路径编码进行转换后再使用,例如sqilte不是不支持中文,它仅以UTF-8编码下的中文:
byte[] defaultbytes = System.Text.Encoding.Default.GetBytes(FileName); byte[] utf8bytes = System.Text.Encoding.Convert(System.Text.Encoding.Default, System.Text.Encoding.UTF8, utf8bytes); FileName = System.Text.Encoding.Default.GetString(utf8bytes2);
虽然显示上仍然是乱码,但它的字节组已经转换为UTF-8了。
ikok以“测试”为例,给了如下例子:
string test = "测试"; byte[] utf8bytes = System.Text.Encoding.Default.GetBytes(test); byte[] utf8bytes2 = System.Text.Encoding.Convert(System.Text.Encoding.Default, System.Text.Encoding.UTF8, utf8bytes); test = System.Text.Encoding.Default.GetString(utf8bytes2);
最终的结果test显示为:娴嬭瘯
“娴嬭瘯”是UTF-8编码下的“测试”以Default编码显示的结果。懂?