怎么识别是一中文汉字还是两个字符呢?

gggjjj 2006-11-01 08:42:17
一个中文汉字在C中占两个字节,一个西文字符占一个字节,那么怎么识别16位的一个串是代表一个中文字符呢还是两个西文字符呢?
...全文
241 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanniko 2006-11-01
  • 打赏
  • 举报
回复
[DllImport("kernel32")]
private static extern int lstrlenA(string lpString);
zzPandazz 2006-11-01
  • 打赏
  • 举报
回复
现在英文也是两个了
jxhwei 2006-11-01
  • 打赏
  • 举报
回复
Unicode的特点是:
不管哪一国的字符码均以两个Byte表示,例如"A"在Unicode则是16进制41和00的组合,即4100,高位41(转换为Ascii码即是65=A)

如果用的是Ascii码,自然不存在这个问题,如果是Unicode码,那么,如果后2位是00的,就是英文字符
gggjjj 2006-11-01
  • 打赏
  • 举报
回复
最后一句有些看不懂啊。
Knight94 2006-11-01
  • 打赏
  • 举报
回复
通过Encoding来判断,例如:
private int GetChsCharLength( string strValue )
{
if( strValue == null || strValue == "" ) return 0;

Encoding encGB = Encoding.GetEncoding( "gb2312" );
Encoding encUnicode = Encoding.Unicode;

return strValue.Length - ( encUnicode.GetByteCount( strValue ) - encGB.GetByteCount( strValue ) );
}

private int GetAniCharLength( string strValue )
{
if( strValue == null || strValue == "" ) return 0;

Encoding encGB = Encoding.GetEncoding( "gb2312" );
Encoding encUnicode = Encoding.Unicode;

return encUnicode.GetByteCount( strValue ) - encGB.GetByteCount( strValue );
}
已经博主授权,源码转载自 https://pan.quark.cn/s/e7f334cb07df ### 和利时DCS操作手册知识点概述#### 一、HOLLiASMACS系统介绍**1.1 HOLLiAS的定义**HOLLiAS是由和利时公司研发的分布式控制系统(Distributed Control System,简称DCS),主要应用于工业自动化领域的监控与管理。该系统融合了先进的控制技术与信息技术,能够对复杂的工业过程进行有效的监控和优化管理。**1.2 HOLLiAS MACS V5.2.4版本**HOLLiAS MACS V5.2.4版本是HOLLiAS系统的一个重要升级版本,该版本在原有基础上增加了更多的功能模块,提升了系统的稳定性和可靠性。此版本特别注重用户友好性和灵活性,使得系统更加便于配置和维护。**1.3 集成的软件说明**HOLLiAS MACS V5.2.4系统集成了多种软件工具,主要包括:- **数据库总控软件**:用于管理整个系统的数据库结构。- **设备组态软件**:支持对系统中的各种硬件设备进行配置。- **图形组态软件**:用于创建和编辑图形用户界面。- **报表组态软件**:提供报表设计和生成的功能。- **工程师站下装软件**:负责将组态好的数据下载到控制站。- **历史数据查询软件**:支持对历史数据的查询和分析。#### 二、软件安装与卸载**2.1 系统运行环境要求**- **硬件要求**:推荐使用较高性能的服务器作为主机,至少配备4GB内存,双核处理器,以及充足的磁盘空间。- **操作系统**:支持Windows XP及以上版本,建议使用Windows Server系列操作系统以获得更好的稳定性和安全性。**2.2 系统软件...

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧