C#使用LCMapString API函数进行中文简繁体互相转换
简体中文 (Simplified Chinese)和繁体中文(传统汉字,Traditional Chinese)之间的转换,单纯使用字字对照转换是绝对无法准确的。所以,在使用下面的方法进行了 C# 简繁转换后,务必对转换结果进行修正,才能保证可以使用。
修正主要包括:
1、一对多关系时根据词义换用字;
2、两岸(或港台和内地)词汇差异,如“网上邻居”和“网络上的芳邻”、“最终用户许可协议”和“最终用户许可协议”。
C# Code:
/// <summary>
/// C#使用LCMapString API函数进行中文简繁体互相转换
/// </summary>
public static class ChineseConverter
{
internal const int LOCALE_SYSTEM_DEFAULT = 0x0800;
internal const int LCMAP_SIMPLIFIED_CHINESE = 0x02000000;
internal const int LCMAP_TRADITIONAL_CHINESE = 0x04000000;
/// <summary>
/// 使用OS的kernel.dll做為簡繁轉換工具,只要有裝OS就可以使用,不用額外引用dll,但只能做逐字轉換,無法進行詞意的轉換
/// <para>所以無法將電腦轉成計算機</para>
/// </summary>
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern int LCMapString(int Locale, int dwMapFlags, string lpSrcStr, int cchSrc, [Out] string lpDestStr, int cchDest);
/// <summary>
/// 繁體轉簡體
/// </summary>
/// <param name="pSource">要轉換的繁體字:體</param>
/// <returns>轉換後的簡體字:体</returns>
public static string ToSimplified(string pSource)
{
String tTarget = new String(' ', pSource.Length);
int tReturn = LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_SIMPLIFIED_CHINESE, pSource, pSource.Length, tTarget, pSource.Length);
return tTarget;
}
/// <summary>
/// 簡體轉繁體
/// </summary>
/// <param name="pSource">要轉換的繁體字:体</param>
/// <returns>轉換後的簡體字:體</returns>
public static string ToTraditional(string pSource)
{
String tTarget = new String(' ', pSource.Length);
int tReturn = LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_TRADITIONAL_CHINESE, pSource, pSource.Length, tTarget, pSource.Length);
return tTarget;
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
/// <summary>
/// C#使用LCMapString API函数进行中文简繁体互相转换
/// </summary>
public static class ChineseConverter
{
internal const int LOCALE_SYSTEM_DEFAULT = 0x0800;
internal const int LCMAP_SIMPLIFIED_CHINESE = 0x02000000;
internal const int LCMAP_TRADITIONAL_CHINESE = 0x04000000;
/// <summary>
/// 使用OS的kernel.dll做為簡繁轉換工具,只要有裝OS就可以使用,不用額外引用dll,但只能做逐字轉換,無法進行詞意的轉換
/// <para>所以無法將電腦轉成計算機</para>
/// </summary>
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern int LCMapString(int Locale, int dwMapFlags, string lpSrcStr, int cchSrc, [Out] string lpDestStr, int cchDest);
/// <summary>
/// 繁體轉簡體
/// </summary>
/// <param name="pSource">要轉換的繁體字:體</param>
/// <returns>轉換後的簡體字:体</returns>
public static string ToSimplified(string pSource)
{
String tTarget = new String(' ', pSource.Length);
int tReturn = LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_SIMPLIFIED_CHINESE, pSource, pSource.Length, tTarget, pSource.Length);
return tTarget;
}
/// <summary>
/// 簡體轉繁體
/// </summary>
/// <param name="pSource">要轉換的繁體字:体</param>
/// <returns>轉換後的簡體字:體</returns>
public static string ToTraditional(string pSource)
{
String tTarget = new String(' ', pSource.Length);
int tReturn = LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_TRADITIONAL_CHINESE, pSource, pSource.Length, tTarget, pSource.Length);
return tTarget;
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
本文英文版:http://ceeji.net/en/blog/2010/03/c-convert-between-simplified-chinese-and-traditional-chinese/
本文来源:
参考文档:
在ASP.NET Core web API中使用Swagger/OpenAPI(Swashbuckle)-C/S开发框架
CSFramework.AutoUpgrader 发布命令升级包出错:InvalidOperationException使用 XmlInclude 或 SoapInclude 特性静态指定非已知的类型
Web端使用VUE调用WebApi接口实现用户登录及采用Token方式数据交互
WebApi开发框架:使用HttpGet方式调用WebAPI接口
使用WebApi框架开发微信小程序后端程序详细设计说明书模板docx文件
WebApi实例教程和使用方法:部署和发布WebApi到IIS服务器
微信小程序使用https协议的WebApi后端应用服务(Win服务宿主或自承载)
客户端使用HTTPGET请求调用WebApi指定FromUri参数对象模型的接口
WebApi使用HttpClient.PostAsync上传大文件报错解决方案
WebApi使用URL拼接参数形式传人后台自动解析为实体对象
WebApi接口使用HttpGet方式实现接受实体类参数(原创)
C#.NET IP地址工具类WebAPI服务器使用
C#使用低级别的Windows API勾子阻止个别按键
CS软件授权注册系统|WebApi服务器介绍|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
CSFrameworkV6.1前端+WebApiV3后端测试报告(前后端分离)|C/S开发框架
在ASP.NET Core web API中使用Swagger/OpenAPI(Swashbuckle)-C/S开发框架
CSFramework.AutoUpgrader 发布命令升级包出错:InvalidOperationException使用 XmlInclude 或 SoapInclude 特性静态指定非已知的类型
Web端使用VUE调用WebApi接口实现用户登录及采用Token方式数据交互
WebApi开发框架:使用HttpGet方式调用WebAPI接口
使用WebApi框架开发微信小程序后端程序详细设计说明书模板docx文件
WebApi实例教程和使用方法:部署和发布WebApi到IIS服务器
微信小程序使用https协议的WebApi后端应用服务(Win服务宿主或自承载)
客户端使用HTTPGET请求调用WebApi指定FromUri参数对象模型的接口
WebApi使用HttpClient.PostAsync上传大文件报错解决方案
WebApi使用URL拼接参数形式传人后台自动解析为实体对象
WebApi接口使用HttpGet方式实现接受实体类参数(原创)
C#.NET IP地址工具类WebAPI服务器使用
C#使用低级别的Windows API勾子阻止个别按键
CS软件授权注册系统|WebApi服务器介绍|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
CSFrameworkV6.1前端+WebApiV3后端测试报告(前后端分离)|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
