You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.6 KiB
42 lines
1.6 KiB
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace EasyBL
|
|
{
|
|
/// <summary>
|
|
/// 中文字符轉換工具
|
|
/// </summary>
|
|
public class ChineseStringUtility
|
|
{
|
|
private const int LOCALE_SYSTEM_DEFAULT = 0x0800;
|
|
private const int LCMAP_SIMPLIFIED_CHINESE = 0x02000000;
|
|
private const int LCMAP_TRADITIONAL_CHINESE = 0x04000000;
|
|
|
|
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
|
|
private static extern int LCMapString(int Locale, int dwMapFlags, string lpSrcStr, int cchSrc, [Out] string lpDestStr, int cchDest);
|
|
|
|
/// <summary>
|
|
/// 将字符转换成简体中文
|
|
/// </summary>
|
|
/// <param name="source">输入要转换的字符串</param>
|
|
/// <returns>转换完成后的字符串</returns>
|
|
public static string ToSimplified(string source)
|
|
{
|
|
var target = new String(' ', source.Length);
|
|
var ret = LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_SIMPLIFIED_CHINESE, source, source.Length, target, source.Length);
|
|
return target;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将字符转换为繁体中文
|
|
/// </summary>
|
|
/// <param name="source">输入要转换的字符串</param>
|
|
/// <returns>转换完成后的字符串</returns>
|
|
public static string ToTraditional(string source)
|
|
{
|
|
var target = new String(' ', source.Length);
|
|
var ret = LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_TRADITIONAL_CHINESE, source, source.Length, target, source.Length);
|
|
return target;
|
|
}
|
|
}
|
|
}
|