乐哈哈旅游视频网:
随笔 - 186  文章 - 1  评论 - 149  阅读 - 93万

汉字编码启发之1

'tuenhai所用获得汉字或字符对应的区位符
Function quwei(ByVal x As String) As String '
x = Asc(x) 'Asc 返回输入字符的码位或字符代码。对于单字节字符集 (SBCS),返回值范围为 0 到 255;对于双字节字符集 (DBCS),返回值范围为 -32768 到 32767。对于单字节 ASCII 字符的图表,请参见 ASCII 字符代码。
x = Hex((x)) '返回表示数字的十六进制值的字符串。刘=FFFFC1F5,前面的4个F去掉,得到16进制的内码。16进制的C=10进制的12
Dim str As String
str = Format(CDec("&H" & Strings.Mid(x, 5, 2)) - 160, "00") & Format(CDec("&H" & Strings.Mid(x, 7, 2)) - 160, "00")
'Strings.Mid(x, 5, 2) '得到16进制的内码,“刘”内码高位=C1
'CDec("&H" & str) '转换成10进制内码,"&H"表示16进制 “刘”内码高位=193
'-160 得到10进制区码, “刘”区码是33
'Format(decQu, "00") '格式化为两位数表示
Return str
End Function
'GB2312的原文还是区位码,从区位码到内码,需要在高字节和低字节上分别加上A0,
'在DBCS中,GB内码的存储格式始终是big endian,即高位在前。
' 区位码是与汉字一一对应的编码,用四位数字表示, 前两位从01 到94称区码,后两位从01到94称位码。 一个汉字的前一半是 ASCⅡ码为“160+区码”的字符,后一半是ASCⅡ码为“160+ 位码”的字符。
'例如:“刘”的区位码是 3385,其意为区码33位码85,它是由ASCⅡ码为160+33=193和160+85=245的两个字符组成。
posted on   riky  阅读(587)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2007年4月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12

乐哈哈旅游视频网:
点击右上角即可分享
微信分享提示