发现了lucene一个bug
2006-12-20 13:58
501 查看
版本:lucene-2.0.0
现象:半角日文片假名(カタカナ)无法正确建立索引
模块:CJKAnalyzer
问题定位:CJKTokenizer.java 148行附近
if (ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
/** convert HALFWIDTH_AND_FULLWIDTH_FORMS to BASIC_LATIN */
int i = (int) c;
i = i - 65248;
c = (char) i;
}
在该行代码中,执行了全角/半角转换
判断条件为ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
转换方式为i = i - 65248;
其中,在Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS的定义中
全角英文/数字以及半角日文片假名均属于其中
但,实际上只有65281-65374的字符可以通过减去65248来进行转换
半角日文片假名这样做就错了
呵呵,呵呵
lucene.net是否有此问题我尚未检查
顺便回顾一下我曾经发现过的一个微软本地化bug
现象:半角日文片假名(カタカナ)无法正确建立索引
模块:CJKAnalyzer
问题定位:CJKTokenizer.java 148行附近
if (ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
/** convert HALFWIDTH_AND_FULLWIDTH_FORMS to BASIC_LATIN */
int i = (int) c;
i = i - 65248;
c = (char) i;
}
在该行代码中,执行了全角/半角转换
判断条件为ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
转换方式为i = i - 65248;
其中,在Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS的定义中
全角英文/数字以及半角日文片假名均属于其中
但,实际上只有65281-65374的字符可以通过减去65248来进行转换
半角日文片假名这样做就错了
呵呵,呵呵
lucene.net是否有此问题我尚未检查
顺便回顾一下我曾经发现过的一个微软本地化bug
相关文章推荐
- 发现Oracle11.2.0.1关于NLS_LENGTH_SEMANTICS的一个Bug
- 玩怪物猎人P3发现一个BUG可以金钱无数(非老金)
- 发现 SqlHelper v3.1 的一个关于 InputOutput 参数的 Bug? v2.1 老版没错!
- 今天第一天加入CSDN,发现CSDN网站的一个小BUG!
- 刚发现一个BUG,模态对话框url中含有#时出现的问题
- 今天又发现IE的一个BUG!与Binary Behavior有关
- 中文WordPress工具箱(1.2)一个不易发现的bug
- 一个尚未发现bug的小程序
- 很久以前发现的 vc2008 的一个bug(关于模板匹配)
- 发现了一个delphi的form的bug
- 发现ie6一个bug
- JDBMonitor日志输出探究(做executeBatch时发现一个BUG所引发的)
- 发现一个小BUG
- 居然发现了一个VS2012 C编译器 float的一个BUG!!!
- 最近发现VB.net2003的一个bug
- 发现一个jquery的hover在ie6、7下的bug
- 发现vs2005一个bug!庆祝一下!
- 发现一个bug JasperRunManager.runReportToHtmlFile
- Lucene.net 的一个小bug
- 今日发现mysql的一个bug