当前位置: 首页 > news >正文

oracle数据库 ZHS16GBK 数据库 VARCHAR2字段无法存储生僻字解决方案、如“䶮”生僻字、oracle utl_raw函数解释

由于数据库一直都是延期最开始的 ZHS16GBK字符集,实际使用中发现字段类型为varchar2时,
生僻字无法保存,存进去查询出来是?号。

一、终极解决方案(改数据库编码级,弊端很大)-不推荐

将数据库字符集改为 AL32UTF8(UTF-8 编码),VARCHAR2 也能直接支持所有 Unicode 字符。
这样就不必依赖 NVARCHAR2,统一使用 VARCHAR2 即可。
但这是一个重大变更,需要迁移数据,评估应用兼容性。
因为数据库改为UTF-8 编码 每个中文占用3个字节、而ZHS16GBK 数据库每个汉字占用两字节;而varchar的最大长度为4000字节;改为UTF-8会导致原有字段的内容可能长度不够而被截断,所以这个方式根本不适应已经上线的项目。

二、后台解决方案(碰到需手动处理)-推荐

2.1 字段类型 从VARCHAR2转为NVARCHAR2

首先需要把字段类型 从VARCHAR2转为NVARCHAR2 ,已验证PLSQL可以直接修改,并且对java程序等都不影响,不用改代码。

在这里插入图片描述

2.2 后台执行sql修改

改成NVARCHAR2 后 ,比如 用户姓名 “金䶮” ,其中“䶮” 为偏僻字保存后显示 “?”,
我们先查询到 “金䶮”的unicode编码

java有方法可以中文转unicode,我是直接使用在线网站工具

https://www.sojson.com/

金䶮 转为unicode编码为 \u91D1\u4DAE (Unicode 码点用十六进制表示)
在这里插入图片描述

然后数据库后台执行sql修改姓名, \不需要

update tj_tjdab set xm=(select utl_raw.cast_to_nvarchar2('91D14DAE')  from  dual) where dabh='D10025231206092640'

执行后再次查询发现数据库已经保存正常了
在这里插入图片描述

oracle utl_raw函数解释

UTL_RAW.CAST_TO_NVARCHAR2(raw_value)

  • 功能:将一个 RAW 类型的字节序列,按照国家字符集(NCHAR Character Set)的编码方式,转换为 NVARCHAR2 字符串。
  • 输入:RAW 类型(通常是一个十六进制字符串,如 ‘91D14DAE’)。
  • 输出:NVARCHAR2 字符串。
  • 关键点:这个转换是 按字节解释,不是按数据库字符集(如 ZHS16GBK),而是按 国家字符集(通常是 AL16UTF16)来解码。
http://www.dtcms.com/a/482505.html

相关文章:

  • Python - 100天从新手到大师:第五十五天使用缓存
  • K8S(八)—— Kubernetes 集群调度全面解析:从组件协作到实战(含亲和性、污点容忍与故障排查)
  • 基于MATLAB的遗传算法优化支持向量机实现
  • k8s(四)Kubernetes 集群调度
  • 如何从 iPhone 中导出视频
  • 关于网站开发的开题报告郑州制作平台网站
  • 吐鲁番做网站godaddy服务器做网站
  • 特色专业建设验收网站如何做网络营销方案策划
  • iBizModel 日历部件(PSSYSCALENDAR)模型体系详解
  • Goroutine间的“灵魂管道”:Channel如何实现数据同步与因果传递?
  • 一个网站上能不能放两个域名 两个备案号沧县做网站价格
  • GPIO 也是一个接口,还有 QEMU GPIODEV 和 GUSE
  • 网站制作公司电话山东专业网站建设公司
  • 第 8 篇:更广阔的世界 - 加载 3D 模型
  • C/C++---_access 和 access 函数 文件/目录状态判断
  • Linux内存管理-缓存系统中的Major和Minor详解
  • 8 读写分离-实战
  • 手机网站建设西安检查网站是否做301
  • 网站Favicon图标:小图标背后的大作用 引言
  • 什么是GEO生成式引擎优化?GEO科普:定义、原理与应用指南
  • 使用 Gensim 进行主题建模(LDA)与词向量训练(Word2Vec)的完整指南
  • 诺奖解码外周免疫耐受,泰克生物以抗体工具链加速机制研究突破
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P05-07 广播效果资产标签
  • 南阳专业做网站抖音代运营平台
  • 网站公司怎么做的好天津海外seo
  • 二级网站建设方案模板做ppt的网站叫什么名字
  • Java优选算法——位运算
  • Linux编辑器vim
  • 大模型-去噪扩散概率模型(DDPM)采样算法详解
  • LeetCode 398:随机数索引