vb6如何获取某个字母开头的所有汉字?

能找到获得汉字首字母的方法:(以D为例)i=Asc(mystr)SelectCaseiCase-20319To-20284:py="A"Case-20283To-1977... 能找到获得汉字首字母的方法:(以D为例)

i = Asc(mystr)
Select Case i
Case -20319 To -20284: py = "A"
Case -20283 To -19776: py = "B"
Case -19775 To -19219: py = "C"
Case -19218 To -18711: py = "D"
......

但是我反过来用,效果不好,很多都是问号。(以D为例)
For x = -19218 To -18711
Text1.Text = Text1.Text & vbCrLf & Chr(x)
Next
End Sub

我觉得应该有更好的办法获取某个字母开头的所有汉字吧,用unicode或其他的编码来确定?
展开
 我来答
网海1书生
科技发烧友

推荐于2016-01-08 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
改成这样即可:

For X = -19218 To -18711
k = X And &HFF
If k >= &H40 And k <> &H7F And k <> &HFF Then
Text1.Text = Text1.Text & vbCrLf & Chr(X)
End If
Next

汉字的GBK字符集中的内码是有范围限制的,其中高位是从&H81到&HFE,低位是从&H40到&H7E以及&H80到&HFE,所以并不是随便说出一个整数都有一个对应的汉字,必须符合上述的规则才行。
补充:GB2312字符集的内码范围则是:高位&HA1到&HF7,低位&HA1到&HFE
由于只有GB2312的字符才是按拼音排列的,所以你的代码最好改为:
For X = -19218 To -18711
k = X And &HFF
If k > &HA0 And k < &HFF Then
Text1.Text = Text1.Text & vbCrLf & Chr(X)
End If
Next
如果想获得所有拼音首字母相同的汉字,你就必须自己做个数据库了
joychen_
2014-10-14 · TA获得超过1747个赞
知道大有可为答主
回答量:1617
采纳率:100%
帮助的人:1834万
展开全部
  GB 2312标准共收录6763个汉字,一级汉字从16区起始,汉字区的“高位字节”的范围是0xB0-0xF7,“低位字节”的范围是0xA1-0xFE,占用的码位是 72*94=6768。其中有5个空位是D7FA-D7FE。
  参考:http://baike.baidu.com/view/443268.htm

所以你使用这样的范围方式输出肯定会产生很多不在GB标准之内编码,起码对于低位字节就包含了很多不在0xA1-0xFE之间的编码值,这肯定会产生问号的.

另外,这6763个汉字之外的汉字(比如GBK扩展部分),内码可不是按照拼音顺序排列的,这种方式取拼音字母和产生汉字仅限于GB2312.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式