[闲聊日语]37
(37)如何使用计算机编程语言识别日文
这个帖子,是关于计算机编程的,如果您不从事这方面工作,我建议您就不用看了,以免
浪费您的宝贵时间。
好几年前,有一个上海的软件程序员,给我发邮件,问我一个问题:假设有一个软件,要
求用户输入自己的姓名,如果是中文或英文姓名,他可以使用编程语言,识别出来,但如
果是日文姓名,应当如何识别?以后陆续又有一些朋友,问我类似的问题(因为我曾写过
一本关于 VC++ 的书,那上面有我的邮箱地址)。刚开始,我还觉得很奇怪,中国的软件
,干吗要识别日文?后来一打听,才知道,原来自 90 年代中期以来,有不少中国程序员
,去日本的软件公司打工,由于他们以前从未接触过日文编程,所以不得不在赴日之前,
临阵磨枪,恶补有关知识。下面我简单介绍一下,如何用计算机编程语言识别日文
在 Windows 环境中,VC++ 有一组函数,专门用来识别日文,而国内非常流行的 VB,很遗
憾,没有这些函数(我本人是铁杆的 VB 爱好者)。在 VC++ 中,所有用来识别日文的函
数,都以 _ismbc 开头,比如 _ismbchira,用来识别平假名,_ismbckata,用来识别片假
名,等等。下面我举一个小例子,介绍这些函数如何使用。
char kana='あ';
if(_ismbchira(kana))
cout << "平仮名である"
else
cout << "片仮名である";
很简单吧?表面上看,确实很简单,但实际上,还很麻烦,这是因为:第一,日文字符有
单字节和双字节两种类型,因而有不同的函数;第二,日文字符有三种常用的编码,即 J
IS、SJIS 和 EUC,因而有不同的函数;第三,日文字符分为一级字符(常用字符)和二级
字符(非常用字符),因而又有不同的函数。所以在实际编程时,还需要根据具体情况,
决定使用哪些函数。
不过幸运的是,这些函数的用法,基本上都一样,你只要看懂我上面那个小例子,其它函
数都不成问题。至于每个具体的函数,功能是什么,您必须查阅 VC++ 的联机帮助文挡(
英文的),内容太多了,我这里就不说啦。
▲备注:我收到几封邮件,都是问,在 VB 中,如何识别日文。我在帖子中,已经说过,
VB 中没有这种函数,不能直接识别,如果非要用 VB 识别,只能用 ASC 函数,检测某个
字符的 ASCII 或 UNICODE 代码,来判断这个字符是否是日文,不过处理起来很麻烦。