zoukankan      html  css  js  c++  java
  • MultiByteToWideChar处理中文问题

    .NET里面, 处理中文乱码经常是个头痛的问题, Windows API函数MultiByteToWideChar在处理这方面的问题给予了很好的支持

    [DllImport("kernel32.dll")]
            public extern static int MultiByteToWideChar(
                uint codePage, //Code Page
                uint dwFlags, //Switch Flags
                string multiByteStr, //Input ANSI String
                int cbMultiByte, //Input ANSI String Length
                [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpWideCharStr, //Output UNICODE String
                int cchWideChar//Output UNICODE String Buffer Size
            );

    假设字符串变量value存储的是一个已经乱码了的繁体中文 , 想把它正确的解码出现, 可以这样

     先得到乱码中文的长度(因为API函数需要这个参数)

    int len = MultiByteToWideChar(9500, value, -1null0);

     参数cbMultiByte指定"-1"即可得到输入的value的长度

    StringBuilder buffer = new StringBuilder();
    MultiByteToWideChar(9500, value, -1, buffer, len);

     这样, buffer里面得到的就是正确的繁体解码的中文了

    注: "950"是繁体代码页, 另, "936"是简体代码页

  • 相关阅读:
    Jeninks远程部署war包
    DOCKER中centos7的中文支持
    正则四
    正则三
    正则二
    正则一
    SHELL小练习
    SHELL用法九(awk练习)
    SHELL用法八(Grep语句)
    SHELL用法七(Sed语句)
  • 原文地址:https://www.cnblogs.com/LeoWong/p/2266850.html
Copyright © 2011-2022 走看看