一个超基础的问题

joejoe1991 2007-07-04 07:04:45
看到一个贴子
是问怎么检测一个字符是不是汉字的。 看到回答中有这样的答案

\u4e00-\u9faf

。。 看着很晕 以前见过这样的东西 不过一直不知道是什么 我想学习一下 麻烦大家告诉我一下 \u4e00 \u9faf 这个是什么东西? 还有什么高一位什么的。

涉及到什么知识啊? 谢谢啦!
...全文
352 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
realcbb 2007-07-16
  • 打赏
  • 举报
回复
好东东,受教了。。。

同意LS
talentluo 2007-07-16
  • 打赏
  • 举报
回复
好东东,受教了。。。
Fantongking 2007-07-05
  • 打赏
  • 举报
回复
Unicode编码~~~~
检测是不是汉字就是用正则表达式来匹配~~~~
楼主看看正则表达式相关的东西吧~~~~
  • 打赏
  • 举报
回复
呵呵,为了说明 Java 能很好的支持 Unicode,我原来发过一个很有趣的帖子,有兴趣的话可以去看看:

http://community.csdn.net/Expert/TopicView3.asp?id=5602854
  • 打赏
  • 举报
回复
呵呵,那个帖子已经结帖了

\u4e00 ~ \u9faf 是 Java 中表示 Unicode 字符的方法,这一 Unicode 编码范围是基本的汉字字符集。

Unicode 编码是由 Unicode 组织制定并将其标准化的,以示在使用统一的编码来表示世界上大多数的语言字符,最初制定时是由 4 位的 16 进制字符(两个字节),被称为 UCS-2 表示(当然,为了表示更多的字符还有 UCS-4 标准,即采用 4 个字节来表示),可以包含 2^16(65536)个字符,Unicode码一般采用 U+0000 的格式进行表示,在 U+0000~U+007F 完全与ASCII 的 128 字符编码相同。再往后的字符的由 Unicode 来划分每种字符集的范围。

至于高位为“1”是指:在使用 Unicode 的编码前,例如:原来在 DOS 系统下表示汉字的问题,DOS 中 ASCII 码由 1 个字节来表示,即 0x00~0x7F,而汉字则由两个字节来表示,为了不与 ASCII 字符相混淆,采用 0x80~0xFF 的范围来拼成两个字节(实际上最初的双字节汉字编码范围是 A0A1~FEFE 的,也就是我们常说的内码)。

ASCII 的字符范围若是使用二进制则为 00000000~01111111,可以看到最高位(最左边的一位)是“0”,而 80~FF 则为 10000000~11111111,最高位为“1”,因此在那个帖子中 Inhibitory 的方法就是以此来判断的。
lhfzd2004 2007-07-04
  • 打赏
  • 举报
回复
Unicode
^[\u4E00-\u9FA5]+$这是专门用于匹配简体中文的正则表达式, 实际上繁体字也在里面
rumlee 2007-07-04
  • 打赏
  • 举报
回复
字节编码了。
Charlemagne 2007-07-04
  • 打赏
  • 举报
回复
编码方面的 找本书看下或者百度下吧

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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