none
UWP中没了有Encoding.Default怎么才能读写有中文的ANIS编码的TXT不乱吗 RRS feed

  • 问题

  • var content = File.ReadAllText(path,Encoding.ASCII); byte[]tempU= Encoding.ASCII.GetBytes(content); string utf8 = Encoding.UTF8.GetString(tempU);

    这样转也是没用的,应为这里 var content = File.ReadAllText(path,Encoding.ASCII);得到的已经是乱码了。

    2016年7月30日 15:21

答案

  • 感谢解答,自己搞定了 O(∩_∩)O哈哈~

    #region 注册GB2312
                EncodingProvider provider = CodePagesEncodingProvider.Instance;
                Encoding.RegisterProvider(provider);
                Encoding gb2312 = Encoding.GetEncoding("gb2312");
                #endregion
    
                var content = File.ReadAllText(path, gb2312);
    
                byte[] tempG = gb2312.GetBytes(content);
                byte[] utf8 = Encoding.Convert(gb2312, Encoding.UTF8, tempG);
                string utf8str = Encoding.UTF8.GetString(utf8);
    各种花样测试,都不行,最后这样就没问题了,还是不方便感觉,要是其他语言的系统铁定不能用,还要自己判读系统的语言在调用不同的转码方法

    • 已标记为答案 Enious 2016年7月31日 4:51
    2016年7月31日 4:51

全部回复

  • 你好,

    试试var content = File.ReadAllText(path,Encoding.Unicode);

    或者var content = File.ReadAllText(path,Encoding.UTF8);


    Keep Fighting

    2016年7月31日 2:07
  • 感谢解答,自己搞定了 O(∩_∩)O哈哈~

    #region 注册GB2312
                EncodingProvider provider = CodePagesEncodingProvider.Instance;
                Encoding.RegisterProvider(provider);
                Encoding gb2312 = Encoding.GetEncoding("gb2312");
                #endregion
    
                var content = File.ReadAllText(path, gb2312);
    
                byte[] tempG = gb2312.GetBytes(content);
                byte[] utf8 = Encoding.Convert(gb2312, Encoding.UTF8, tempG);
                string utf8str = Encoding.UTF8.GetString(utf8);
    各种花样测试,都不行,最后这样就没问题了,还是不方便感觉,要是其他语言的系统铁定不能用,还要自己判读系统的语言在调用不同的转码方法

    • 已标记为答案 Enious 2016年7月31日 4:51
    2016年7月31日 4:51