引用kernel32.dll实现简体字和繁体字转换

来源:互联网 发布:西安交大图书馆网络 编辑:程序博客网 时间:2024/04/27 23:56

界面页面代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="我是一个中国人!"></asp:Label>
        <asp:Button ID="Button1" runat="server"  Text="简体" onclick="btnCHS_Click" />
        <asp:Button ID="Button2" runat="server"  Text="繁体" onclick="btnCHT_Click" />
    </div>
    </form>
</body>
</html>

 

逻辑实现:

 

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Runtime.InteropServices;
using System.Text;

public partial class Default4 : System.Web.UI.Page
{
    //2.import kernel32.dll
    //复制  保存
    [DllImport("kernel32.dll", EntryPoint = "LCMapStringA")]
    public static extern int LCMapString(
        int Locale,
        int dwMapFlags,
        byte[] lpSrcStr,
        int cchSrc,
        byte[] lpDestStr,
        int cchDest);

    const int LCMAP_SIMPLIFIED_CHINESE = 0x02000000;
    const int LCMAP_TRADITIONAL_CHINESE = 0x04000000;

    protected void Page_Load(object sender, EventArgs e)
    {
      
    }


     //3.转简体
      //复制  保存
    protected void btnCHS_Click(object sender, EventArgs e)
        {
            string src = Label1.Text.Trim();
            byte[] srcByte = Encoding.Default.GetBytes(src);
            byte[] desByte = new byte[srcByte.Length];
            LCMapString(2052, LCMAP_SIMPLIFIED_CHINESE, srcByte, -1, desByte, srcByte.Length);
            string des = Encoding.Default.GetString(desByte);
            Label1.Text = des;
        }

        //4.转繁体
        //复制  保存
        protected void btnCHT_Click(object sender, EventArgs e)
        {
            string src = Label1.Text.Trim();
            byte[] srcByte = Encoding.Default.GetBytes(src);
            byte[] desByte = new byte[srcByte.Length];

            LCMapString(2052, LCMAP_TRADITIONAL_CHINESE, srcByte, -1, desByte, srcByte.Length);
            string des = Encoding.Default.GetString(desByte);
            Label1.Text = des;
        }

 

}