昨天一个大学的同学问了一个关于utf-8转码gbk的问题,所以两个人一起讨论了一下关于utf-8转码成为GBK的乱码原因。

正常情况下如果我们需要将UTF-8格式转码为GBK,我们会需要经过这样一个中转:

通常情况下如果直接转码会出现一种情况就是GBK转码UFT-8出现乱码后乱码可以在转码回去变为原来的GBK中文。

但是UTF-8转码为GBK则会出现两种情况,在中文字符长度为偶数时是可以直接将乱码还原回去的,但是奇数情况下是无法全部转码回去的

究竟什么原因呢?

这和UTF-8的编码字节数和GBK的编码字节数有关,我们知道UTF-8的字符集是以三个字节数来存储的,而GBK则是两个字节数,所以就存在以下问题

当“你好好”三个字转码为字符集表示的时候,一共得到九个字节,当然这九个字节转码为gbk的时候会被两两分组,所以第九个字节就会被抛弃无法识别转化为有标记的乱码符号,当我们再把乱码转回去的时候,自然就无法还原为原来的UTF-8了。如下图

所以在UTF-8转gbk的基数情况下就会出现最后一个字转码为乱码后无法还原的情况。

UTF-8转码GBK相关推荐

  1. 下载论坛源码GBK UTF8 BIG5分别是什么意思

    下载论坛源码GBK UTF8 BIG5分别是什么意思? 提问者:ly1987520 | 浏览次数:4010次 下载论坛源码简体中文GBK 简体中文UTF8 繁体中文BIG5 分别是什么意思?他们的区别 ...

  2. php文件在线编码转换,gbk编码在线转换_php汉字转码 GBK到Big5编码转换

    摘要 腾兴网为您分享:php汉字转码 GBK到Big5编码转换,月星家居,永辉生活,一点开,幸福钱庄等软件知识,以及酷我音乐车机,爱情电影网影音,杜比音效,微信制作宣传广告,dolbyadvanced ...

  3. 关于C#(生僻字、繁体字)和Java的URL转码GBK后结果不一样的问题解决

    业务背景: 服务端是用Java写的,客户端的是使用C#写的,他们交互以客户端以http协议方式请求服务端,http请求方式要求URL转码为GBK.但是后来发现,服务端收到客户端提交的GBK字符,偶尔会 ...

  4. php文件在线编码转换,php汉字转码 GBK到Big5编码转换

    php如何实现汉字编码转换,有关php汉字转码的例子. 有两点要注意: 1,GBK的繁体字并不是Big5,但一般繁体字都有对应的Big码. 2,一GBK码并不一定有对应的Big5码,所以一般是不可逆转 ...

  5. C++处理 中英字混合截断乱码[中码GBK,英码ASCII]

    //=======================================================// 从start开始 截取中英混合字符 遵循GBK编码规则////========= ...

  6. xp mysql字符集与乱码_mysql字符集(GBK、GB2312、UTF8)与中文乱码的原因及解决

    Mysql乱码问题的原因与解决 MySQL对中文的支持程度还是很有限的,尤其是新手,一旦出现乱码问题,就会头大.下面介绍几种乱码问题的现象原因及解决方法,仅供参考. 乱码问题1:用PHPmyAdmin ...

  7. mysql中gbk编码汉字和英文_MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题...

    MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数 ...

  8. mysql utf8和gbk的区别_MySQL字符集 GBK、GB2312、UTF8区别

    MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数 ...

  9. mysql gbk_MySQL字符集 GBK、GB2312、UTF8区别 解决MYSQL中文乱码问题

    MySQL字符集 GBK.GB2312.UTF8区别 解决MYSQL中文乱码问题 更新时间:2012年08月27日 21:17:11   作者: MYSQL中文乱码问题原因有很多,脚本之家以前发布过很 ...

  10. 用C语言实现常见的三种中文内码转换

    常见的中文内码一般有GB2312(简体中文),GBK和台湾那边用的BIG5(繁体中文),有时候看一些台湾编程论坛里的资料,都是乱码,如果在IE中浏览,则要求安装繁体字库的支持.网上也有很多中文内码的转 ...

最新文章

  1. 【深度学习入门到精通系列】对比度受限的自适应直方图均衡化(CLAHE)
  2. 高性能服务器 - window篇
  3. How to find all event handler list for a given event
  4. VMware虚拟机不能上网的解决方法
  5. Cannot resolve symbol 'R',Failed to resolve: constraint-layout
  6. 关于malloc与字符指针的一些易错点
  7. python可迭代对象,迭代器,生成器
  8. 单点登录相关问题总结
  9. 移动通讯市场发展概况及预测
  10. win10计算机变成了英文,win10变成英文【处理方式】
  11. html表格收起展开,vue-table-element表格的全部展开和全部折叠
  12. 表达式(四则运算)计算的算法代写 essay代写
  13. 关于CSDN书写的博客内容中图片不显示的问题
  14. 【转】人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[0]——月晕础润
  15. 从程序员到项目经理(六):程序员加油站 — 懂电脑更要懂人脑
  16. 不止跑路,拯救误操作rm -rf /*的小伙儿
  17. java bks证书_jks bks 等的定义 如何将jks转化为bks的
  18. Google Sheet 学习笔记
  19. Ubuntu14.04下无线网卡TP-Link TL-WDN5200的驱动安装
  20. 完美解决丨1. **`SyntaxError: invalid syntax`**

热门文章

  1. 计算机中学期末考试,[探析我国中学计算机教育]计算机基础大一考试题
  2. c语言扩展欧几里得算法编程实现,C语言实现欧几里得算法与扩展欧几里得算法.doc...
  3. http 报文格式、状态码
  4. 华为笔记本键盘说明图_电脑键盘的这些功能键的真正用法,你全都了解吗?
  5. (半)自动化爬虫系统该包含的功能点及相关介绍
  6. bios调整服务器性能模式吗,怎样更改BIOS设置提高显卡性能
  7. padavan路由器server酱设备下线快速响应。
  8. 跨平台局域网文件传输工具——Dukto R5
  9. STM32F207 HOST读写u盘枚举失败 USBH_BUSY 或 操作U盘 打开其根目录f_opendir一直卡死
  10. 从普通物理到弦论教材推荐