本文主要是介绍C语言自动识别文本编码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
版权声明:本文为 西风逍遥游 原创文章,转载请注明出处 西风世界 http://blog.csdn.net/xfxyy_sxfancy
用C语言在编写一些文本处理程序时,文本编码就成为了很重要的部分,
但C语言本身,处理文本又十分困难,虽然有wchar_t这类标准库支持,
然后事实是各类编译器对其支持也不相同,而且缺乏一致的标准。
可移植的转码库libiconv
libiconv是GNU出品的一款非常方便的转码库,可以支持各类
常见编码类型。
语言 | 编码 |
---|---|
欧洲语系 | ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U, KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866}, Mac{Roman,CentralEurope,Iceland,Croatian, Romania}, Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh |
犹太语系 | ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic} |
日文 | EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1 |
中文 | EUC-CN, HZ, GBK, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, ISO-2022-CN, ISO-2022-CN-EXT |
朝鲜文 | EUC-KR, CP949, ISO-2022-KR, JOHAB |
亚美尼亚语 | ARMSCII-8 |
格鲁尼亚语 | Georgian-Academy, Georgian-PS |
塔吉克语 | KOI8-T |
泰国语 | TIS-620, CP874, MacThai |
老挝语 | MuleLao-1, CP1133 |
越南语 | VISCII, TCVN, CP1258 |
特殊平台 | HP-ROMAN8, NEXTSTEP |
全部Unicode | UTF-8, UTF-7 UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE C99, JAVA |
计算机内部处理,比较喜欢用Unicode这类覆盖字符集全的,而且一般选择固定长度字符的,像UTF-8这类变长字符集,会给字符处理算法带来困难。
于是一般的字符转码思路就是,将用户的输入字符集识别出来,转换成内部表示形式,一般个人喜欢选UTF-32,比较方便,而且覆盖字符集很全。
输出时,再将内部格式转换为用户需要的编码格式进行输出即可。像linux控制台,
这篇关于C语言自动识别文本编码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!