之前项目需要个简体转繁体的功能,工期太紧,就自己撸了一个,效果还行. 在做这个的过程中发现简转繁其实远比想的要复杂.
中间有很多简体字习惯的用法,在繁体中是不同的。且有些字如(後,后,臺灣,台灣) 在繁体中有几种写法和用法。
简体字将其简化成了一个字... 
然后相同的字,在不同的词组中时,有些用简体那个,有些用繁体那个... 
最后,台湾繁体和香港繁体还有不同的差异. 
        不一一列举,总之是个麻烦事。机械的通过一些编码转换是不行的. 所以通常自己写的话是通过词库去翻译比较好点。
当然也可以调第三方服务API(如有道,维基之类),不过如果业务性能有要求,还是不要调这类第三方服务好点。
       后面项目弄完了,我再回过头研究这个问题,发现了个Open CC的项目弄这个还可以.然后Golang的调用

封装在GitHub上也有人实现了,就拿来试了试,确实效果还不错.

例子:

package main/*
利用OpenCC进行简转繁的例子OpenCC库 : https://github.com/BYVoid/OpenCCopencc wrapper for Golang : github.com/stevenyao/go-openccAuthor:XCL
*/import ("fmt"opencc "github.com/stevenyao/go-opencc"
)func main() {// mac  localconfig_s2t := "/Users/xcl/langtest/input/OpenCC-master/data/config/s2t.json"// linux//config_s2t := "/usr/share/opencc/s2t.json"// 简体字符串ch := "前面有大臣,后面有皇后 游览风景,做游戏,去游园夜游 登上手工造游艇,看维港景色。拿好设备探寻台湾,去游泳,冲浪,别浪费了这次机会. "//应用中需要先检查文件是不是存在,// 否则报"fatal error: unexpected signal during runtime execution." 造成服务中断c := opencc.NewConverter(config_s2t)defer c.Close()// 转换tw := c.Convert(ch)fmt.Println("繁体:", tw)
}/*
运行结果:
➜  src  : go run main.go
繁体: 前面有大臣,後面有皇后 遊覽風景,做遊戲,去遊園夜遊 登上手工造遊艇,看維港景色。拿好設備探尋臺灣,去游泳,衝浪,別浪費了這次機會.
*/

要跑起这个程序,需要有s2t.json这个词库。

配置s2t.json:

本地,解压从github下载的源码,里面有这个文件词库,

Linux 下可以用的yum或rpm之类的命令安装好opencc,其词库在 /usr/share/opencc下。

这个项目转换是很厉害,可以注意下例子中所举的那些字或词,但有些字或词组用法需要定制时,用这个还真不知道怎么加进去或定制一些转换。

时间有限就没研究下去了,反正线上之前写的那个跑得好好的,稳定为主,不折腾这个了。

BLOG: http://blog.csdn.net

简转繁等中文转换(Golang)相关推荐

  1. 简转繁的JS代码(转)

    1.指定内容进行转换 程序代码 <script> //增加简繁转换功能! function bodytojt(x) {   var bodys=document.getElementByI ...

  2. (原創) 如何為Blog加上簡體中文(繁體中文)翻譯? (Web) (CSS) (JavaScript)

    Abstract 雖然簡體中文和繁體中文本一家,不過若能提供同時提供繁體中文和簡體中文的服務,對於讀者將是一大福音. Introduction 目前我在Blog上方多了簡體中文的即時翻譯,如下圖所示 ...

  3. 简而繁的BlocksKit

    前言 意如分类标题那样,笔者打算开始探究框架与源码.毫无疑问,这其中会遇到各种各样的挑战,但是我觉得我们应尽早走出这一步,不然就错过了很多的精彩.也许这精彩是更加开阔的程序视野,亦或是逻辑思维与编程能 ...

  4. ‘个体在外系统’简、繁架构(原创规律)

    '个在外'规律体系用途:'个在外'中各单规律可以构建起宇宙模型,可以很方便的建立起确定的思维系统模型,国家体系模型等.智能体运行时都要用的规律.就像元素周期表中的元素构建起太阳系一样 '个在外'在各领 ...

  5. C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母

    汉字转拼音貌似一直是C#开发的一个难题,无论什么方案都有一定的bug,之前使用了两种方案. 1.Chinese2Spell.cs 一些不能识别的汉字全部转为Z 2.Microsoft Visual S ...

  6. 中文转换成阿拉伯数字

    原文发布时间为:2010-07-15 -- 来源于本人的百度文章 [由搬家工具导入] #region 中文转换成阿拉伯数字 /// <summary> /// 中文转换成阿拉伯数字 /// ...

  7. java做的一个将中文转换成Unicode码的工具类【转载】做个标记,明天研究下

    这两天在使用RBManager(一个开源工具,用于多国化字符转化)工具的时候觉得很不方便,有的时候只需要知道中文对应的unicode码是多少,不需要这么麻烦的操作,所以就自己写了一个工具,专门用于将中 ...

  8. python编码转换中文_python3如何中文转换编码?

    相信平时各位小伙伴都是习惯用中文的人,就算英文水平不错,毕竟还是中文用起来更顺手一点.不过在计算机编程中,还是以英文为主,会给我们的实际操作带来一些困扰.有时候中文也不能被计算机语言所识别,就会导致报 ...

  9. 输入中文转换成拼音首字母

    1.输入中文转换成拼音首字母.  需要的maven 工具包 <dependency><groupId>com.belerweb</groupId><artif ...

最新文章

  1. ubuntu16.04 cuda9.0 cudnn Tensorflow GPU 1.10.0
  2. 力扣(LeetCode)打卡刷题交流计划(长期维护)
  3. htaccess简介和16个小技巧
  4. java手写实现BST
  5. 深度学习之生成对抗网络(6)GAN训练难题
  6. adb命令安装apk到手机_安装在手机上自动化测试apk-傻猴
  7. OpenShift 4 之 Hello-OpenShift
  8. python数据结构list的extend与append的差别
  9. Kubernetes详解(十七)——Pod存活性探针应用实战
  10. Office编程-RPC服务器不可用
  11. Servlet(Request.Response)+文件上传
  12. 日志分析软件 Splunk
  13. c语言int作用,C语言中的int max(int x,int y) 究竟有何作用?
  14. 移动机器人传感器——GNSS
  15. [转]Unity 打包快手
  16. 杯中悬佳酿,唇齿香气浓
  17. 共好:为管理者提供指南(肯·布兰佳)
  18. RabbitMQ六种工作模式
  19. Python课程设计项目-基于机器学习的糖尿病风险预警分析系统
  20. 如何设置每天服务器定时重启?

热门文章

  1. 计算机网络 自顶向下方法 第二章 应用层
  2. C++动态规划算法之怪盗基德的滑翔翼
  3. 计算机组成原理基础知识总结
  4. java wtc_java通过wtc调用tuxedo服务超时
  5. Java经典面试:源码解读及如何保证线程安全
  6. plotwidget横坐标日期_matlab中如何画以日期为横坐标的图?
  7. macbook系统占用硬盘大_解决macos双系统情况下重制macos系统导致windows系统盘一直占用的情况...
  8. iOS安全攻与防(总篇)
  9. 第十三届——蓝桥杯嵌入式第二场
  10. 云起实验室:基于Redis实现在线游戏积分排行榜