1. 安装数据库时, 设置的字符集

CHARACTER SET AL32UTF8

NATIONAL CHARACTER SET AL16UTF16

这里推荐使用 unicode 字符集, 这也是大趋势, unicode协会的口号是, 给每个字符提供了一个唯一的数字, 无论是什么平台, 无论是什么程序, 无论是什么语言.

2. 关于字符集

字符集, 是指我们输入的字符所对应的一个编码, 字符集不同, 所对应的编码就不同, 可以使用dump('你') 查看当前的编码, 编码不同, 意味着有可能出现乱码, 另外, 字符集 等字符的显示也有很重要的影响, 比如日期的显示样式 等.

注: 创建数据库以后想改变字符集是一件很困难的事情, 所以, 最好在创建数据库以前就准备好.

client 端字符集, server 端字符集, 某些字符集之间可以发生转换.( 子集-超集的关系才可以)

3. NLS_LANG 参数

NLS_LANG=language_territory.charset :

language: 服务器消息语言

territory: 地区, 指定了服务器的日期和数字等的格式

charset: 字符集

从NLS_LANG 的组成我们可以看出, 真正影响数据库字符集的其实是第三部分, 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据, 前面影响的只是提示信息.

导入导出(IMP/EXP)是一个常用的数据迁移及转化工具, 因其导出文件具有平台无关性, 所以在跨平台迁移中, 最为常用, 在使用EXP工具进行导出操作时, 非常重要的时客户端的字符集设置, 也就是客户端的NLS_LANG设置

自己以前在客户端执行一个脚本时, 脚本的时间格式是英文格式, 但是客户端的字符集是中文, 所以导致脚本执行出错. 修改了客户端的字符集, 运行脚本成功的经历.

传统的导入导出工具(IMP/EXP)是客户端软件, 同sqlplus一样, 因此, 使用EXP/IMP工具将同样按照NLS_LANG定义的方式调用字符集文件, 并且在服务器和客户端之间根据设置进行字符集转换:

通常在执行导出操作时, 最好把客户端字符集设置的和数据库相同, 这样同样避免在导出时发生不必要的数据转换, 导出文件将和数据库具有相同的字符集.

4. 查询字符集

1) select * from nls_database_parameters;

2) server 端: select userenv('language') from dual;

3) client端: 主要是查看 NSL_LANG 这个参数.

5. 乱码问题

3个字符集的设置

  • 客户端应用字符集(sqlplus 等等)  (客户端操作系统可控)
  • 客户端NLS_LANG参数设置
  • 服务器端, 数据库字符集(character set 设置) ( 可见跟服务器端的 NLS_LANG没啥关系)

由于一个字符在客户端应用(sqlplus 等)中以怎样的字符显示取决于客户操作系统, 客户端能够显示怎样的字符, 我们就可以在应用中录入这些字符, 至于这些字符能否在数据库中正常存储, 就和另外两个字符集设置紧密相关了(通常我们可以忽略应用程序的字符集, 这个字符集在应用程序安装时, 已经被内在的决定, 并且会依据操作系统的相关设置进行选择)

在传输过程中, 客户端NLS_LANG主要用于转换判断, 如果客户端NLS_LANG等于数据库字符集, 则不进行任何转换直接把字符插入数据库, 如果不同则进行转换, 转换有以下两种:

  • 如果存在对应关系, 子集-超集, 则把相应二进制代码经过映射后传递给数据库.
  • 如果不存在对应关系, 则传递一个替换字符(最常见的替换字符是"?")

综上:

1. 客户端应用字符集, 一般只要满足输入就可以了, 也就是说我们输入的字符是我们本身的意愿, 在windows平台如何查看这个字符集, cmd 命令, 这个工具的字符集决定查询结果在终端上输出显示, 当前这个cmd的字符代码页是936, 对应的时GBK字符集:

2. 客户端NLS_LANG: 要么选择跟数据库一样 AL32UTF8, 要么选择 AL32UTF8的子集, 具体的集合关系(查看本blog环境设置里图)

3. 数据库字符集: 个人推荐 AL32UTF8

转载于:https://www.cnblogs.com/moveofgod/p/3788765.html

专题实验 字符集(全球化支持)相关推荐

  1. docker兼容的linux内核,CentOS 6.5上安装Docker与Docker对中文字符集的支持

    一.CentOS 6.5上安装docker 在CentOS 6.5 还不能够直接通过yum install -y docker 来安装docker服务,在一些文档中有看到说是因为内核太低的原因导致的, ...

  2. 西安交通大学计算机组成原理实验,西安交通大学计算机组成原理专题实验(上)第一次实验报告.pdf...

    西安交通大学计算机组成原理专题实验(上)第一次实验报告 计算机组成原理专题实验报告(第一次) 学生姓名 专业/班级 计算机11 班 学 号 所在学院 电信学院 指导教师 姜欣宁 提交日期 2013 年 ...

  3. mysql utf8 表情符号_MySQLutf8mb4字符集:支持emoji表情符号

    MySQL utf8mb4 字符集:支持 emoji 表情符号 首页 → 数据库技术 背景: 阅读新闻 MySQL utf8mb4 字符集:支持 emoji 表情符号 [日期:2013-05-16] ...

  4. 2022秋季C语言专题实验03-一维数组

    2022秋季C语言专题实验03-一维数组 1 数组求平均值和小于等于平均值的实数个数 2 求最大值及其下标 3 交换最小值和最大值 4 分2列 5 求集合数据的均方差 6 斐波那契数列 7 计算平均分 ...

  5. 2022秋季C语言专题实验07

    2022秋季C语言专题实验07 指针应用-查找数组元素 请编写函数CHG(char *S) 7-1 秋天的第一杯奶茶 7-2 统计单词 7-3 找最大字符串 7-4 字符串排序 7-5 缩写期刊名 7 ...

  6. 西安交通大学计算机组成原理第三章,西安交通大学计算机组成原理专题实验(上)第三次实验报告.pdf...

    计算机组成原理专题实验报告(三) 学生姓名 专业/班级 计算机11 班 学 号 所在学院 电信学院 指导教师 姜欣宁 提交日期 2013 年12 月19 日 计算机组成原理专题实验(三) --运算器模 ...

  7. 2022秋季C语言专题实验04-二维数组

    2022秋季C语言专题实验04-二维数组 1 找鞍点 2 刮刮彩票 7-3 矩阵运算 7-4 判断上三角矩阵 7-5 求矩阵的局部极大值 7-6 打印杨辉三角 7-7 矩阵A乘以B 7-8 矩阵列平移 ...

  8. 2022秋季C语言专题实验03一维数组

    2022秋季C语言专题实验03-一维数组 1 数组求平均值和小于等于平均值的实数个数 2 求最大值及其下标 3 交换最小值和最大值 4 分2列 5 求集合数据的均方差 6 斐波那契数列 7 计算平均分 ...

  9. php 转换数组的字符集,PHP 自动转换字符集(支持字符串和数组)功能实例

    这篇文章主要为大家详细介绍了PHP 自动转换字符集(支持字符串和数组)功能实例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 经测试代码如下: / ...

最新文章

  1. return2libc学习笔记
  2. 数据挖掘过程中:数据预处理
  3. 常用命令之------tcpdump
  4. php代码审计基础笔记
  5. [Android]使用ViewPager实现图片滑动展示
  6. 谷歌浏览器该扩展程序未列在Chrome网上应用店中解决方法
  7. python中for循环格式_如何将python中for循环的输出写入csv格式的文件?
  8. akamai:与看视频广告等待相比,用户更不能忍受缓冲等待
  9. Java定时任务工具详解之Timer篇
  10. 【IDEA】jsp页面中的代码一不小心变成黄色,代码被识别成sql脚本解决办法
  11. 有关存储器容量的计算
  12. 中期答辩记录与总结反思
  13. 机器学习基础 2:矩阵乘法以及求导
  14. ardupilot rover ardurover 电机相关源码 PreArm servo function 33 unassigned
  15. python dataframe 增加一行
  16. 如何培养项目管理的领导力?
  17. 密码学基础知识(一)
  18. 【炼数成金 NOSQL引航 一 】 进入NoSQL世界;NoSQL与SQL的战争
  19. UEStudio正则使用实例三则
  20. [RFC6023] 互联网密钥交换版本 2 (IKEv2) 安全协会 (SA) 的Childless 初始化 (翻译)

热门文章

  1. php向前截取字符串函数,ThinkPHP 模板substr的截取字符串函数详解
  2. HTTP响应头信息 Content-Type
  3. Spring配置中的classpath:与classpath*:的区别研究
  4. vant 引进单个样式_vue 公共列表选择组件,引用Vant-UI的样式方式
  5. java四则出题判分_java 随机出题四则运算
  6. string int 相互转换
  7. leetcode:Majority Number
  8. 修改项目生成Gemfile的模板
  9. 德佑地产房产经纪人区域总监访谈:掌门的态度
  10. T-SQL远程数据库备份还原