字符集问题

简介: pub 上的一个贴子。分享一下: insert into的时候,在服务器端显示汉字,然后插入后select的时候是??解决过程:1、查询nls_database_parameters      查看系统characterset2、查询props$系统表 看ch...

pub 上的一个贴子。分享一下:

insert into的时候,在服务器端显示汉字,然后插入后select的时候是??
解决过程:
1、查询nls_database_parameters
      查看系统characterset
2、查询props$系统表 看characterset
3、查看session的characterset,可以用alter session set  nls_language=american
4、主要是把数据库、系统字符集、终端字符集、客户端字符集都支持中文,至少是ZHS16GBK,或者支持
诸多国家语言的UTF8,然后为了防止字符之间的编码转换,最好同意他们的编码,编码和字符集又是不同
的概念(有时间需要看一看)
5、我的测试库l建库的时候建立的字符集是ZHS16GBK,语言设置的是AMERICAN_AMERICA
我设置系统字符集和数据库一致后,设置终端的oracle的.bash_profile文件vi追加
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
最终解决问题

总结:
1、解决问题的过程不是按照人家的案例而去做人家的解决方法,必须理解解决的原理,然后根据原理来结合自己的环境进行修改
2、中日韩字符集本来就是很不同于世界其他国家的字符集的,所以这个问题很不好弄,字符集与编码的概念和方法需要研究看一下,数据库是怎样转换编码机制的需要看一下
3、还有一种特殊情况,也有好多数据库遇到了这种案例,概括为在错误的环境下面输入数据,然后在错
误的select数据出来满足理想中的结果,但实际在数据库内部数据记载的是错误的,但在表象出现了“负负得正”的情况,解决方法以及实验后续有时间写成文档共享

目录
相关文章
|
16天前
|
存储 SQL 关系型数据库
字符集(Charset)
字符集(Charset)
70 3
|
3月前
|
存储 自然语言处理 关系型数据库
字符集详解
字符集详解
30 0
|
存储 编解码 算法
字符编码的前世今生
字符编码的前世今生
129 0
|
关系型数据库 MySQL 数据库
【MySQL数据库】字符集与校对集
MySQL中提供了许多校对集,用于为不同字符集指定比较和排序规则。校对集的名称由“_”分隔的3部分组成,开头是对应的字符集,中间是国家名或general,结尾是ci、cs或bin。ci表示不区分大小写,cs表示区分大小写,bin表示以二进制方式比较。
182 0
|
关系型数据库 MySQL Shell
latin1字符集的数据转换为utf8字符集
latin1字符集的数据转换为utf8字符集
855 0
|
存储 关系型数据库 MySQL
MySQL数据库(6):字符集 character
MySQL数据库(6):字符集 character
114 0
|
存储 人工智能 关系型数据库
utf8字符集下的比较规则
在MySQL中,比较常用的字符集是utf8和utf8mb4。这两个字符集是类似的,utf8是utf8mb3的别名,所以之后在MySQL中提到utf8就意味着使用1~3个字节来表示一个字符,如果大家有使用4字节编码一个字符的情况,比如存储一些emoji表情啥的,需要使用utf8mb4。其实每个字符集下对应着若干个比较规则(也可以翻译为排序规则或校对规则,英文是COLLATE),同一字符集下,使用不同的比较规则会影响字符字段的比较和排序。本文以utf8为例,介绍下常用的几个比较规则的不同。
282 0
utf8字符集下的比较规则
|
JavaScript 自然语言处理
|
存储 API Windows