zoukankan      html  css  js  c++  java
  • UWP&WP8.1 中文网页字符乱码 字符乱码 UTF-8转GBK 解决方法

    UWP 方法

      async void Download()
            {
                /*新建HttpClient*/
                HttpClient web_ = new HttpClient();
                /*使用HttpClient的GetAsync方法下载*/
                var res = await web_.GetAsync(new Uri("http://dzs.qisuu.com/txt/%E6%AD%A6%E9%81%93%E7%B3%BB%E7%BB%9F%E4%B9%8B%E8%8D%89%E6%B0%91%E5%B4%9B%E8%B5%B7.txt"));
                /*注册桌面程序可使用的字符编码*/
                Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
                /*注册GBK*/
                Encoding encodingGbk = Encoding.GetEncoding("GBK");
                /*转换编码*/
                Stream StreamToReader = await res.Content.ReadAsStreamAsync(); 
                /*使用StreamReader的新实例:stream流,字符编码 */   
                StreamReader sr = new StreamReader(StreamToReader,encodingGbk);
                /*异步读取全部字符*/
                string Text = await sr.ReadToEndAsync();    
                /*赋值到TextBox控件*/     
                T.Text += Text;
            }

    截图:

    WP8.1 方法:

     HttpClient web_ = new HttpClient();
                var res = await web_.GetAsync(new Uri("http://dzs.qisuu.com/txt/%E6%AD%A6%E9%81%93%E7%B3%BB%E7%BB%9F%E4%B9%8B%E8%8D%89%E6%B0%91%E5%B4%9B%E8%B5%B7.txt"));           
                /*转换字符*/
                var Text = await res.Content.ReadAsStringAsync();
                box.Text = Text;

    上面是解决方法。不论你用什么方法读取字符,或者网页。在UWP在中一定要转换成stream,并且注册GBK,在通过SteramReader读取。WP8.1中就相对简单了,两种方法(UWP和WP8.1)都可以使用的。

  • 相关阅读:
    Js 作用域链
    JS 上下文模式
    javascript
    HTTP概念进阶
    JavaScript运行机制详解
    浅谈循环中setTimeout执行顺序问题
    Js 运行机制 (重点!!)
    javascript
    jQuery 知识点总结
    Educational Codeforces Round 87 (Rated for Div. 2)
  • 原文地址:https://www.cnblogs.com/T-ARF/p/6261927.html
Copyright © 2011-2022 走看看