前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【java基础之字符问题】UTF-8和GBK的区别与联系

【java基础之字符问题】UTF-8和GBK的区别与联系

作者头像
用户5640963
发布2019-07-26 13:59:55
1.4K0
发布2019-07-26 13:59:55
举报
文章被收录于专栏:卯金刀GG卯金刀GG

基础概念:

1 字符集 字符集就是编码的集合,例如unicode、GBK、GB2312等都属于字符集。

2 编码 编码就是字符的表现形式,例如unicode字符集就能够用UTF-8、UTF-16UTF-32编码。

GBK与UTF-8转换的核心问题分析。 GBK是一种字符集,而UTF-8是一种编码,因此通常我们研究的GBK与UTF-8的转换问题,其实就是GBK与Unicode字符集的转化问题,由于GBK和Unicode的字符(主要讨论汉字字符)之间没有必然的联系,因此通常是采用查表的方法来实现GBK和Unicode之间的转化。在完成GBK与Unicode编码的转化后,剩下的工作就是如何把Unicode以UTF-8的形式表现出来了。

搞清楚编码问题,接下来要做的就是如何进行编码转换?在linux平台下,有iconv()函数可供使用,那么在Windows平台下该如何处理呢?其实处理的方法有很多,如Windows API / IBM ICU4C 等,作者推荐使用windows平台下的iconv()函数,因为相对于使用Windows API,iconv库可以方便的跨平台;而相对于IBM公司的ICU4C, iconv库要小很多。

下面给出几个windows下 iconv库的链接: (1) MinGW使用的编译好的库,能够直接使用。 http://sourceforge.net/projects/mingw/files/MinGW/Base/libiconv/libiconv-1.14-2/

(2) GNU开源源代码,需要之间编译成相应的动态库或者是静态库。 http://www.gnu.org/software/libiconv/ 这个iconv源代码需要自己编译。下面给出在Windows下使用MinGW和MSYS编译的过程。 (a) 安装autoconf工具 (b) 依次执行下列命令(编译为静态库) ./configure --prefix=/home --enable-static --disable-shared make make install 那么编译后,在/home目录中就会看到编译后的输出。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档