数据库存储解决生僻字
一、Oracle数据库
就一般情况来说,Oracle存储中英文的字段用varchar2类型就可以了,但有些时候,遇到生僻字就不行了, 在默认字符集环境下,实现Oracle储存生僻字: 㛃、䶮…(使用nvarchar2字段类型实现)
首先,把生僻字转换为Unicode。工具链接https://tool.chinaz.com/tools/unicode.aspx
“㛃” 转为Unicode为 “\u36c3”(注意: \u 是Unicode的转义字符,使用的时候要去掉)然后,插入SQL进行比较一下。
insert into TEST(SNAME,TNAME) values('u36c3','㛃');
二、mysql数据库
将该表或者改字段设置为字符集修改为utf8mb4
三、postgresql数据库
该数据库设置varchar可以存储生僻字
四、java处理生僻字
public class RareCharacterUtility {public static boolean containsUserDefinedUnicode(String string) {if (string == null) {throw new NullPointerException("Stirng must be non-null");}int[] code = toCodePointArray(string);// U+E000..U+F8FFfor (int c : code) {if (c >= '\ue000' && c <= '\uf8ff') {return true;}}return false;}static int[] toCodePointArray(String str) {int len = str.length();int[] acp = new int[str.codePointCount(0, len)];for (int i = 0, j = 0; i < len; i = str.offsetByCodePoints(i, 1)) {acp[j++] = str.codePointAt(i);}return acp;}static String toHex(int[] chars) {String r = "[";for (int i=0; i<chars.length; i++) {if (r.length() > 1) {r += ",";}r += Integer.toHexString(chars[i]);}r += "]";return r;}public static void main(String[] argu) {String rr = ("\u5f20\ue0bf\uD86C\uDE70\uD840\uDC10\uD86D\uDF44\uD87E\uDCAC\u9fc6");System.out.println("Unicode = " + toHex(toCodePointArray(rr)));boolean r = (containsUserDefinedUnicode(rr));System.out.println("Test result = " + r + " should be true");}
}
参考:https://blog.csdn.net/qq_37312208/article/details/81869779?from=timeline
数据库存储解决生僻字相关推荐
- GBase8s数据库支持中文生僻字注意事项
GBase8s数据库支持中文生僻字 注意事项 将数据导入到GBase8s数据库中,我们会进行建库.建表.建字段的操作,当这些操作完成以后在初期导入一些测试或样例数据的时候都比较顺利.但有时到了正式环境 ...
- oracle 数据库更改字符集,解决生僻字和中文标点符号. 乱码
背景: 一个很久以前的老项目,开发人员在安装Oracle数据库时采用的默认的编码集,导致后期正式运行时出现某些生僻字和中文符号. 出现乱码.出现的情况就是某些生僻字或中文符号点一经保存,数据库里面就直 ...
- Oracle存储中文生僻字:Navicat客户端不乱码而Developer显示乱码
登陆Oracle数据库,这里用SecureCRT,很好用的一个SSH连接工具: //切换到oracle su - oracle //登录sqlplus sqlplus /nolog //连接orcal ...
- mysql 特殊字符支持_mysql 解决生僻字,特殊字符插入失败
MySQL 的 utf8 实际上不是真正的 UTF-8.utf8 只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节.MySQL 一直没有修复这个 bug,他们在 2010 年发 ...
- RENPY 中文替换字体的解决办法,解决生僻字框框
官方的说明文件讲的很含糊,仔细看下官方文档来说的是替换编辑器的字体文件,而你如果要替换游戏工程的字符,你就要进入到\\[project name]\game 目录下 编辑gui.rpy ,替换注释原先 ...
- sqlserver varchar 类型存储生僻字,会变成问号,而nvarchar类型不会 是什么原理? (㙍、㮾,䶮)
在 SQL Server 中,varchar 类型和 nvarchar 类型都用于存储可变长度的字符数据.它们之间的主要区别在于字符编码的方式. varchar 类型使用的是单字节编码(如 ASCII ...
- 生僻字html乱码,Tomcat 5.5.X及以上版本的生僻字乱码解决办法
软件环境:Tomcat5.5.X 问题描述: 1)一般的汉字正常,如:中国,任务,管理. 2)生僻字出现乱码.如:喆,璟. 解决过程: 1.前言.在Tomcat4中,GET和POST使用相同的处理方式 ...
- SQL生僻字模糊查询
生僻字指在数据库默认的编码中不存 又称难字或冷僻字 一.SQL中解决生僻字录入乱码问题[调整列数据类型->由varchar改为NVARCHAR] 二.生僻字模糊查询问题 生僻字在Like与Cha ...
- 关于网页中显示生僻字的方法
问题描述:今天编辑团队在发布一篇文章的时候有一个 人名有(yan)字, 网页默认编码UTF-8 ,字体CSS代码如下:{font-family:-apple-system, Helvetica Ne ...
最新文章
- latex下IEEE模板中嵌套Python代码
- 基于VMware vSphere 5.0的服务器虚拟化实践(8)
- WIN7中 HttpListener 拒绝访问 异常解决 C#
- 使用OkHttp3之Websocket实现长连接
- 网站SEO优化之如何建设外链提升网站权重?
- Windows核心编程 第十二章 纤程
- post和get的区别?
- java个人支付系统(springboot)
- 倒计时1天,盛会将至,长沙 · 1024程序员节全日程曝光(附参会指南)
- http请求头中包含未编码中文时webapi self host崩溃
- mysql s授权所有用户_查看MYSQL数据库中所有用户及拥有权限
- 仿微信二维码极速扫描(MLKit及CameraX初体验),安卓消息分发机制
- 【GitLab】GitLab CI/CD 模型部署自动化超详细介绍
- 支付宝小程序获取手机号和授权信息遇坑锦集
- MFC获取主机IP地址
- vscode新手注意事项(字体间隔,报错提示波浪线,头文件路径,opencv头文件路径)
- shtml 是什么?
- myBatis set parameters是提示无效列索引
- Hive入门详解操作
- 秋招面经第十一弹:沐瞳科技一面-大数据平台开发工程师
热门文章
- VMware虚拟机黑屏死机解决方法
- 数据库的应用之(金融)
- 给玩家看贷款、黄色小说广告——不只《羊了个羊》,游戏行业的ESG踩雷有多频繁?
- 眼动追踪-NeuroIS-基础知识总结
- The bean 'xxx' could not be injected as a 'xxx'because it is a JDK dynamic proxy that implements
- Android双屏锁屏,教大家vivonex双屏版怎么一键锁屏的方法
- 调用 Mathpix AIP 实现每月1000次免费识别
- [渝粤教育] 武汉船舶职业技术学院 Adobe Illustrator 图形图像制作 参考 资料
- 【第五届集创赛备赛】九、SD卡控制器开发总结
- 常用的unicode编码图形