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

gggjjj 2006-11-01 08:42:17
一个中文汉字在C中占两个字节,一个西文字符占一个字节,那么怎么识别16位的一个串是代表一个中文字符呢还是两个西文字符呢?
...全文
235 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 );
}
内容概要:本文档介绍了基于Simulink的三自由度汽车操纵动力学模型,重点聚焦于车辆在侧向、侧倾与横摆三个方向的耦合动力学行为,提供了完整的数学建模过程、系统微分方程推导以及详尽的物理参数设置。该模型能够有效模拟车辆在典型操纵工况下的动态响应,如质心侧偏、车身侧倾角变化及横摆角速度演变,适用于车辆稳定性分析、操稳性能评估与主动安全控制系统(如ESP、主动悬架)的设计与验证。文档还探讨了模型与其他悬架系统(如半主动、被动悬架)的集成应用潜力,突出了其在科研仿真中的通用性与扩展能力。; 适合人群:车辆工程、机械电子、自动化、交通运输及相关专业的硕士与博士研究生、高校科研人员,以及从事汽车动力学仿真、底盘控制开发的工程师和技术人员。; 使用场景及目标:①用于高等院校及科研机构开展车辆多体动力学建模与控制算法研究;②支撑高级驾驶辅助系统(ADAS)和自动驾驶中车辆运动控制策略的仿真验证;③作为研究生课程教学案例,帮助学生深入理解多自由度非线性系统建模、状态空间表达与Simulink动态仿真技术。; 阅读建议:建议读者结合MATLAB/Simulink环境进行实操,按照文档中的公式逐步搭建模型模块,对照提供的参数完成系统配置,并通过阶跃转向、双移线等典型工况仿真,调试与验证模型的动态特性,从而全面掌握车辆操纵动力学的建模方法与仿真分析流程。

111,131

社区成员

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

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

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