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

gggjjj 2006-11-01 08:42:17
一个中文汉字在C中占两个字节,一个西文字符占一个字节,那么怎么识别16位的一个串是代表一个中文字符呢还是两个西文字符呢?
...全文
228 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/a4b39357ea24 ### 知识要点阐释#### 一、MATLAB与三角形位置判定1. **MATLAB概述**: - MATLAB(Matrix Laboratory)是由MathWorks公司研发的一款高性能数值计算及可视化软件包。 - 此软件主要服务于算法开发、数据可视化、数据分析以及数值计算等多个领域。 - 具备卓越的矩阵运算功能,在科学计算、工程分析等领域得到广泛应用。2. **三角形内点判定问题背景**: - 在计算机图形学、地图测绘、地理信息系统(GIS)等领域,经常需要判定一个点是否位于一个三角形内部。 - 该功能对于诸如Delaunay三角剖分等算法尤为关键,因为它能够辅助识别哪些点属于特定的三角形区域。3. **代码分析**: - **函数定义**:`function h = IsInTriangle(a, b)` 定义了一个名为`IsInTriangle`的函数,该函数接收两个输入参数`a`和`b`,并返回一个输出`h`。 - **输入参数**: - `a`:表示一个2×3的矩阵,每一列代表三角形的一个顶点坐标。 - `b`:表示一个2×1的向量,即需要判定的点的坐标。 - **输出参数**: - `h`:如果点`b`位于三角形内部,则返回1;否则返回0。 4. **算法原理**: - 首先验证输入矩阵`a`的尺寸是否为2×3,如果不是则抛出错误信息。 - 对三角形顶点进行排序,确保它们按照一定的顺序排列(例如按y坐标递增排序),便于后续的逻辑判定。 - 计算三角形各边的斜率,并根据这些斜率来判断点`b`是否位于三角形的三条边上或者三角形内部。 - 通过一系列的条件判定来确...

111,130

社区成员

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

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

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