暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【第23期】编码过程中简体中文和繁体中文处理技巧

PLM有个号 2021-09-17
1693

前言:

    之前搞了将近一年的台资PLM项目,开发界面及日志信息都是以繁体为主,开发过程中直接输入繁体比较别扭,调试也不方便,量也比较大,所以没有使用属性文件的本地化,很多时候是先输入简体,再用word或者在线网站将其转为繁体,效率比较低,一直在寻求比较好的方式来提高效率,最后自己写了一个工具可以快速的将代码文件中的所有的简体和繁体互相转换。


原理:

    底层原理也很简单,通过文字转换后的ascii码匹配正则表达式来确定文字是否为中文(简体或者繁体),正则表达式是“[\u4e00-\u9fcc]+”,然后将符合正则表达式的ascii码进行处理,通过简体和繁体的ascii码对照互相转换,比如需要简体转繁体时候,就去对照表中找到这个简体ascii码对应的繁体ascii码,然后将繁体的ascii码替换掉简体的ascii码,然后将ascii还原为繁体,繁体转简体的逻辑反之。

图1:简体和繁体ascii及文字对照字典

 底层原理部分参照了github上一个项目的源码,项目名称叫zhconverter,地址:https://github.com/program-in-chinese/zhconverter,感兴趣的可以去扒一扒源码,这个项目里源码比较别扭,使用的类名和方法名称都是中文,易语言一样,很别扭,为了便于理解我是将其全部转换英文命名了。

图2:githua上zhconverter源码使用中文命名

图3:转为英文命名后的工具类


应用:

    应用层就是逻辑处理了,比如对字符串处理就将字符串转换ascii后对照字典转换,对文件或者文件夹里文件处理就是遍历出文件,然后读取内容对内容字符串转换ascii后对照处理。

    基于底层封装的工具类,我对其做了一个应用层的封装,实现了可以比较方便的对字符串、文件、文件夹下所有子文件的批量简繁体转换工具类。

图4:应用层工具类封装

图5:应用层工具类使用方法


封装为工具:

    继续将其封装为一个jar工具,以供命令行调用。

使用方法:plmnow_zh_transfer.jar [type] [target] [param] [param2]

type(转换对象的类型): 1|2|3, 1表示字符串,  2表示文件, 3表示文件夾

target(转换后语言类型): 转换后语言类型,s|t,s表示转为简体,t表示转为繁体

param(转换内容): 字符串|文件路径|文件夹路径");

param2(转换的文件后缀,只有type为3时候才需要,如果没有则转换所有文件): 后缀1;后缀2;后缀3

demo:plmnow_zh_transfer.exe 1 t 转为繁体测试;

demo:plmnow_zh_transfer.exe 3 t C:\\test  .java;.xml

图6:封装为工具,入口方法


工程源码:

公众号回复“23”,将获取下载链接



文章转载自PLM有个号,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论