温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Oracle 生僻字乱码解决方案

发布时间:2020-08-11 19:48:24 来源:ITPUB博客 阅读:2355 作者:chenoracle 栏目:关系型数据库

Oracle 生僻字乱码解决方案

 

Oracle 生僻字乱码解决方案”(此+夕)【 su ǒ】字乱码,无法正常显示(变成问号);

生僻字“ Oracle 生僻字乱码解决方案”(此 + 夕) (suo) ZHS16GBK 字符集下默认无法正常显示;

测试将生僻字类型由 varchar2 改成 nvarchar2 ,同时使用 utl_raw.cast_to_nvarchar2 函数可以在数据库里正常显示;

Oracle 生僻字乱码解决方案

select * from t1;

Oracle 生僻字乱码解决方案

Oracle 生僻字乱码解决方案

Oracle 生僻字乱码解决方案

数据库字符集如下:

select * from nls_database_parameters;

Oracle 生僻字乱码解决方案

T1 表结构如下:

Oracle 生僻字乱码解决方案

A 字段为 VARCHAR2 类型

http://tool.chinaz.com/tools/unicode.aspx
---将生僻字生成对应的unicode编码

Oracle 生僻字乱码解决方案

select utl_raw.cast_to_varchar2('3C54') from dual;

Oracle 生僻字乱码解决方案

select utl_raw.cast_to_nvarchar2('3C54') from dual;

Oracle 生僻字乱码解决方案

--- 测试 varchar2 类型无法正常存储生僻字 Oracle 生僻字乱码解决方案

truncate table t1;

alter table t1 modify (a nvarchar2(100));

insert into t1 values('? ' ,1);

select * from t1;

Oracle 生僻字乱码解决方案

update t1

   set a =

       (select utl_raw.cast_to_nvarchar2('3C54') from dual)

 where b = 1;

select * from t1;

Oracle 生僻字乱码解决方案

 

--- 测试 nvarchar2 类型可以正常存储生僻字 Oracle 生僻字乱码解决方案

truncate table t1;

alter table t1 modify (a nvarchar2(100));

insert into t1 values('? ' ,1);

select * from t1;

Oracle 生僻字乱码解决方案

update t1

   set a =

       (select utl_raw.cast_to_nvarchar2('3C54') from dual)

 where b = 1;

 

select * from t1;

Oracle 生僻字乱码解决方案

  欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

Oracle 生僻字乱码解决方案

Oracle 生僻字乱码解决方案


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI