关于生僻字乱码的问题
这个事情说来话长,先从2010年之前的各种上户口问题,以及各种民生系统问题说起吧。
那个时候总是出现一些行为,说的是,谁的名字有生僻字上不了户口,用其他的字代替了,
出现了很多那种在族谱上是一个名字,户籍部门一个名字这种奇怪的现象。这个事情我们从软件开发的角度来谈谈,为什么说是2010年内,我猜想哦,这些软件使用
的是MySQL,也许不一定可能是oracle。但是涉及到国家安全的问题我觉得MySQL的概率或
者是基于MySQL进行国产化的一些数据库。这个涉及到MySQL的历史回到2002年,如果用户可以保证表中的每一行具有相同的字节数,MySQL就可以提高用
户的速度。为了得到这个提升,用户就需要定义保存文字的列为“CHAR”。一个“CHAR”列总是
拥有相同的字符数。如果存入的字符较少则会在最后补齐空白。如果存入的数据过多则会被抛
弃多余的字符。当MySQL的开发者第一次尝试以6字节每字符实现UTF-8时,他们意识到CHAR(1)的列会
占用6字节,CHAR(2)会占用12字节,以此类推。显而易见的是,这个没有被使用的实现方式是正确的,任何一个理解UTF-8的开发者将会
认同这一点。我的猜测是:MySQL的开发者违背了“utf8”编码去帮助那些1)试图去优化空间和速度的人,
2)尝试优化空间和速度失败的人。这是个无人获益的改动。那些想要更快性能,更小空间的得到的依然是比他们曾经使用
版本更大更慢的实现,而那些想要正确的“utf8”的人得到的是个“”都存储不了的实现。MySQL发布了这个错误的版本后,在也没有修复它:因为那样很多使用者将被迫重建他
们的数据库。MySQL最终在2010年更新了一个以“utf8mb4”命名的UTF-8实现。
对于MySQL数据库我们该怎么设计呢,我认为的字符编码最好是utf-8mb4
(1)、GBK包含全部中文字符;
(2)、 UTF-8则包含全世界所有国家需要用到的字符。
(3)、utf8mb4专门用来兼容四字节的unicode。utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。
安照上述说明可得知Emoji 表情(Emoji 表情是一种特殊的unicode)、生僻汉字。等等都应该在utf8mb4编码里面了。所以我们在数据库层面解决了字符表情生僻字的问题
那对于html显示呢,我们该怎么设计内。
1、理论上代码是utf-8编码显示是不是问题的,html是可识别的(此处的utf-8和数据的utf-8不一样,注意哈)
2、实际情况是数据库取出来debug打印没有问题可以显示,但是放到html就有问题显示出来的是一个方框这个问题主要是字体库的问题,系统默认使用的是微软雅黑微软雅黑是没有生僻字和图标字体的我们只要在css样式里面引入宋体simsun就行如
body{font:14px Helvetica Neue,Tahoma,Arial,sans-serif,simsun}
那PHP编码转化我们该怎么使用呢
mb_convert_encoding("䶮昊","GBK","UTF-8");iconv("UTF-8","gbk//IGNORE","䶮昊");
看看两个的区别iconv出来出来䶮是乱码,而mb_convert_encoding处理出来是正常的,这个提现在编码转换的用法上。
总结现在的编码转换中文的有好几个版本涉及到姓名的建议使用最新的国标编码
GB18030 > GBK > GB2312
GB18030 的是最全的编码,转化的话使用mb_convert_encoding("䶮昊","GB18030","UTF-8");效果应该是最好的,即使你这辈子一次没有见过,只有那些专家看过的字你也能转化识别出来。
http://www.taodudu.cc/news/show-6143340.html
相关文章:
- layui select(下拉框)修改事件监听
- vue element-ui 实现可输入的选择下拉框
- python爬虫selenium操作下拉框详解
- 好看的css下拉框样式,实用的漂亮的下拉框-CUSTOM DROP-DOWN LIST STYLING
- jq取html下拉框的值,jquery设置下拉框的值为空
- Winform中给下拉框(ComboBox或LookUpEdit)添加内容
- Axure下拉框的多选与取消
- easyui下拉框值改变
- layui下拉框联动查询效果
- html网页常用功能:下拉框模糊搜索
- ERP规范正式实施 信息化可以对症下药?(转)
- 这些年,亲眼所见的软件公司中混迹的老油条汇总
- 无法安装net framework 3.5 的解决方法
- 新中大ERP初体验
- for key in file_keys
- fromkeys()
- psycopg2.errors.DatatypeMismatch: 错误: 无法实现外键约束 “sale_an_product_tax_id_fkey“
- typescript 之 keyof
- keyof 的使用
- UE:无法解析的外部符号 “public: __cdecl FKey::~FKey(void)“ (??1FKey@@QEAA@XZ)
- :key的绑定
- BUUCTF Reverse/findKey
- fork和lockf应用
- Ts keyof
- key_t键和ftok函数(转)
- @keyframes简单使用
- kfifo
- BUUCTF ------findkey
- key 按键
- buuctf————findkey
关于生僻字乱码的问题相关推荐
- Oracle 生僻字乱码问题
就一般情况来说,Oracle存储中英文的字段用varchar2类型就可以了,但有些时候,遇到生僻字就不行了. 需求描述: 在默认字符集环境下,实现Oracle储存生僻字: 㛃.䶮.....(使用nva ...
- oracle 生僻字 转码,Oracle 生僻字乱码解决方案
Oracle生僻字乱码解决方案 ""(此+夕)[suǒ]字乱码,无法正常显示(变成问号); 生僻字""(此+夕)(suo)在ZHS16GBK字符集下默认无法正常 ...
- 解决Mybatis3.3中NVARCHAR2生僻字乱码
文章目录 1. 解决Mybatis3.3中NVARCHAR2生僻字乱码 1.1. 注意 1.2. 解决方法 1.2.1. 第一步.数据库的varchar2字段修改为nvarchar2 1.2.2. 第 ...
- sqlserver中文生僻字乱码问题
sqlserver中文生僻字乱码问题解决 场景:前端输入生僻字,e.g. 㙍.㮾,存入到数据库为乱码(㙍/-). 解决:修改会存生僻字的字段(一般地址字段)的数据类型为nvarchar,在插入或更新s ...
- jsoup 生僻字乱码问题解决
jsoup 简介 Java 程序在解析 HTML 文档时,相信大家都接触过 htmlparser 这个开源项目,我曾经在 IBM DW 上发表过两篇关于 htmlparser 的文章,分别是:从 HT ...
- 生僻字html乱码,Tomcat 5.5.X及以上版本的生僻字乱码解决办法
软件环境:Tomcat5.5.X 问题描述: 1)一般的汉字正常,如:中国,任务,管理. 2)生僻字出现乱码.如:喆,璟. 解决过程: 1.前言.在Tomcat4中,GET和POST使用相同的处理方式 ...
- java mysql 生僻字 乱码_JAVA生僻字乱码问题
我先把数据从数据库中查出来,然后输出到EXCEL表格中,但是表格中显示的是乱码.数据库中的数据是正常的,没有问题,程序有个查询功能,一个导出功能,查询功能是调用润乾展示报表,没有乱码.... 我先把数 ...
- was中奇怪的生僻字乱码案例
问题描述 这个今天早上提供的一个生产问题.大体是说,改资料的时候,有个客户的名字有生僻字,叫"刘",保存之后就乱码了,变成"刘?" 分析过程 乱码需要确认数据 ...
- 解决jacob用wps将word转html的时候个别生僻字乱码的问题
原创文章,转载请注明出处 用jacob将wps转html的时候,Java读入转后的html,发现有个别生僻字出现乱码, 解决方法: 因为WPS默认转成html是gb2312编码的,而gb2312不支持 ...
最新文章
- vue 报错 Cannot read property ‘__ob__‘ of undefined的解决方法
- Linux日志系统-04:logrotate命令格式
- ASP.NET中进行消息处理(MSMQ)
- 【图像处理】——Python OpenCV实现形态学膨胀、腐蚀开闭操作(可以用于图像滤波、图像分割等)
- 基于前端javascript的搜索功能
- 库卡机器人是s7编程_KUKA工业机器人与S7-1200PLC实现Profinet通讯步骤详解图文版
- Linux之相关英文缩写含义
- 复合选择器-子选择器(HTML、CSS)
- Security+ 学习笔记17 公钥基础设施
- 做了一天的程序,很困啊,明天还要赶着去上课
- Java之—hutool工具类二维码生成跟背景图合并输出
- JSONObject依赖包
- abaqus的python安装文件在哪_Abaqus2016安装教程【附软件下载地址】
- 计算机病毒知识 360回答,计算机病毒与反病毒技术 课后习题答案
- Java300StudyNote(7)-Java各版本JavaSE、JavaEE、JavaME
- Outlook2016 使用技巧
- Python如何自动播放视频(XXT)
- 基于新浪微博的男女性择偶观数据分析(下)
- 学习,积累,10000小时定律
- JVM调优参数大全及G1GC调优