utf8和gbk可以直接转换么

 我来答
没钱的萌娃纸
高粉答主

2018-05-22 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:230
采纳率:100%
帮助的人:6.6万
展开全部

JS中的字符串本身就是以字符来存储,而非字节,所以没有所谓的gbk或utf8;而encodeURI本身就会把字串以utf8编码进行url编码;想要以gbk形式转换,就应该以Buffer来按字节处理。应该这样写:var titleBuffer = new Iconv('UTF-8', 'GBK').convert('数学');  // 不要toString,直接以字节数组形式存于buffer。

(1)utf8_encode是PowerBuilder的函数,该函数将 data 字符串转换为 UTF-8 编码,并返回编码后的字符串。UTF-8 是一种用于将宽字符值转换为字节流的 Unicode 的标准机制。

(2)GBK即汉字内码扩展规范,K为扩展的汉语拼音中"扩"字的声母。英文全称Chinese Internal Code Specification。GBK编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。GB2312码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集--基本集》,1980年由国家标准总局发布。基本集共收入汉字6763个和非汉字图形字符682个,通行于中国大陆。新加坡等地也使用此编码。GBK是对GB2312-80的扩展,也就是CP936字码表 (Code Page 936)的扩展(之前CP936和GB 2312-80一模一样)。

地瓜说机
推荐于2017-09-09 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2.3万
采纳率:91%
帮助的人:1.2亿
展开全部
基础概念:

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

2 编码
编码就是字符的表现形式,例如unicode字符集就能够用UTF-8、UTF-16和UTF-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使用的编译好的库,能够直接使用。(下载如图所示的包,放在MinGW中的include和lib目录即可)
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目录中就会看到编译后的输出。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式