繁体字通常采用BIG5编码,简体字通常采用GBK或者GB18030编码,这种情况下,直接使用iconv(linux下有对应的命令,也有对应的C API供编程调用)就行。对于默认采用utf-8编码的文件或者繁简体都并存的情况(通常采用utf-8)编码的情况,iconv这种方式就不行了。这里我们可以采用一个调用 opencc 的开源库,来实现UTF-8编码环境下的简体、繁体互转的功能。参照 https://github.com/BYVoid/OpenCC 完成opencc库的安装
     
     下面是自己用C++程序调用相关的API来完成的繁体转简体的功能

//test.cpp

#include <iostream>
#include <opencc/opencc.h> using namespace std; int main ( int argc, char *argv[] )
{
string str= "中華人民共和國反分裂國家法";
//string str= "中华人民共和国反分裂国家法"; //默认的是简体转繁体即OPENCC_DEFAULT_CONFIG_TRAD_TO_SIMP, opencc.h头文件中有详细介绍
opencc_t ot = opencc_open(OPENCC_DEFAULT_CONFIG_TRAD_TO_SIMP); char buffer[512] = {'\0'};
opencc_convert_utf8_to_buffer(ot, str.c_str(), str.size(), buffer);
cout << "result is " << buffer << endl; opencc_close(ot); return 0;
}
编译 g++ test.cpp -o test -lopencc

opencc 繁体简体互转 (C++)的更多相关文章

  1. opencc 繁体简体互转 (C++示例)

         繁体字通常采用BIG5编码,简体字通常采用GBK或者GB18030编码,这种情况下,直接使用iconv(linux下有对应的命令,也有对应的C API供编程调用)就行.对于默认采用utf-8 ...

  2. 通过JS实现网站繁体简体互换

    html部分 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  3. JAVA字符串繁体简体相互转换

    引入maven依赖 <!-- https://mvnrepository.com/artifact/com.github.stuxuhai/jpinyin --> <dependen ...

  4. 繁体简体转化_langconv.py

    from copy import deepcopyimport re try: import psyco psyco.full()except: pass try: from zh_wiki impo ...

  5. php如何实现简繁体互转

    php如何实现简繁体互转 一.总结 一句话总结:大部分字是一样的,只转不同的即可 具体转换就是在映射表中找对应的即可 1.简繁体转换的常见问题是什么? 能否智能转换,就是词组, 例如:简体“ 皇后 ” ...

  6. spring boot: 通过filter过滤器实现中文的简体繁体字符集转换(spring boot 2.3.1)

    一,为什么要使用filter来实现简繁体转换? 项目中有时会有同时支持简体和繁体两种字符集的要求, 或者搜索引擎有支持繁体输入字符的需求. 针对繁体字符的显示, 我们通常会在数据库和模板.文案配置中默 ...

  7. 超强敏感词过滤算法第二版 可以忽略大小写、全半角、简繁体、特殊符号、HTML标签干扰

    上一篇 发一个高性能的敏感词过滤算法 可以忽略大小写.全半角.简繁体.特殊符号干扰 改进主要有几点: 用BitArray取代Dictionary用空间换时间 性能进一步提升 大概会增加词库的  6k* ...

  8. SQL简繁转换函数

    declare @jall nvarchar(4000),@fall nvarchar(4000) select @jall=N'啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊 ...

  9. 汉语言处理工具pyhanlp的简繁转换

      繁简转换 HanLP几乎实现了所有我们需要的繁简转换方式,并且已经封装到了HanLP中,使得我们可以轻松的使用,而分词器中已经默认支持多种繁简格式或者混合.这里我们不再做过多描述. 说明: ·Ha ...

随机推荐

  1. 芯片SA58672(功放芯片)

    1::下面的中文图可能不准: 针对上面的图,数据手册中有一些参数的推导:      这个式子是电压增益的   这个式子是关于截止频率的  典型原理图: 需要电源去耦,能够提高效率. PVDD引脚处的电 ...

  2. qemu 参数简介

    参数 示例 说明 -hda -hda /data/windows.img 指定windows.img作为硬盘镜像 -cdrom -cdrom /data/windows.iso 指定windows.i ...

  3. C# 进制转换 在什么情况下使用16进制,字节数组,字符串

    C# 进制转换 Admin2013年9月18日 名人名言:从工作里爱了生命,就是通彻了生命最深的秘密.——纪伯伦 1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制Con ...

  4. python打印即时输出的方法

    >>> import sys>>> sys.stdout.flush() 但是实验了,上面的报错,应该是不对的. 实验了,下面的报错,应该是不对的. 使用 prin ...

  5. Linux下交叉编译gdb,gdbserver+gdb的使用以及通过gdb调试core文件

    交叉编译gdb和gdbserver 1.下载gdb:下载地址为:http://ftp.gnu.org/gnu/gdb/按照一般的想法,最新版本越好,因此下载7.2这个版本.当然,凡事无绝对.我们以gd ...

  6. spring项目启动后,获取bean的方法总结

    如果在web项目中,用到定时器的朋友可能会遇到使用spring注解的方式获取bean的时候报空指针的异常.这是就可以使用手工的方法获取spring容器中的bean了. 下面是具体的方法: 1.先说一个 ...

  7. redis文档翻译_key设置过期时间

    Available since 1.0.0.    使用開始版本号1.01 Time complexity: O(1)  时间复杂度O(1) 出处:http://blog.csdn.net/colum ...

  8. Loader之二:CursorLoader基本实例 分类: H1_ANDROID 2013-11-16 10:50 5447人阅读 评论(0) 收藏

    参考APIDEMO:sdk\samples\android-19\content\LoaderCursor 1.创建主布局文件,里面只包含一个Fragment. <FrameLayout xml ...

  9. php实现 字符串加密(分类分布分工,化不可能为可能)

    php实现  字符串加密(分类分布分工,化不可能为可能) 一.总结 一句话总结:谋而后动,加先伪代码,在带函数逻辑,在函数的方式可以极大的避免错误和降低难度.不然这个题目乎出现各种乱七八糟的错误. 1 ...

  10. Android多线程研究(9)——线程锁Lock

    在前面我们在解决线程同步问题的时候使用了synchronized关键字,今天我们来看看Java 5.0以后提供的线程锁Lock. Lock接口的实现类提供了比使用synchronized关键字更加灵活 ...