中文字符编码转换问题

时间:2023-01-24 19:14:53

当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编码显示的结果。懂?