zoukankan      html  css  js  c++  java
  • hello dotnet

    前些天,微软发布了.netcore2.0的预览版。本博客记录了开发和运行.netcore程序的流程,讨论了在windows平台下输出中文的注意事项。

    本文分别论述了Console.WriteLine在.NET Framework以及.NET Core在windows平台中的实现。同时探究了文本编码的一些道道。

    下面是Console.WriteLine的流程

    Console.WriteLine向输出流Out中写入数据,输出流Out是StreamWriter,StreamWriter的编码为Encoding.OutputEncoding

    uint cp = Win32Native.GetConsoleOutputCP();
    _outputEncoding = Encoding.GetEncoding((int) cp);
     return _outputEncoding;

    上面代码中的cp是936,但是,.Framework获取到的_outputEncoding是DBCSEncoding,.NetCore获取到的是UFT8.

    .NetCore中的注释如下

    // For netcore we use UTF8 as default encoding since ANSI isn't available

    因此,netcore在控制台中的输出可能会是乱码。


    有两种途径可以解决:
    1.在进行任何输出之前执行下面的语句
    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

    2.将控制台的代码页修改为UTF8,即65001


  • 相关阅读:
    python学习(一)
    Ubuntu安装git
    HashMap源码分析
    nginx加密,访问接口认证
    MD5加密加盐
    xml转对象,对象转xml工具类
    java将对象转map,map转对象工具类
    阿里备战--面试搜集
    java将秒转换为时分秒工具类
    Spring和SpringMvc详细讲解
  • 原文地址:https://www.cnblogs.com/songqiang/p/hello_dotnet.html
Copyright © 2011-2022 走看看