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. 读javascript高级程序设计03-函数表达式、闭包、私有变量
  2. java中substring函数
  3. linux多个客户端如何通信_linux实现多个客户端通信进阶
  4. 大数据WEB阶段(八)Tomcat服务器安装与详解、HTTP协议详解
  5. logback 的 access 模块
  6. 2019.9.19最小生成树知识点总结
  7. 【汇编语言】汇编实验IDE(集成开发环境):RadASM的安装和使用说明
  8. 计算机学术英语常见词汇短语总结
  9. 小红的记谱法(模拟+前缀和)
  10. NBU官方Doc網址https://www.veritas.com/support/en_US/article.DOC5332
  11. 怎样HTML做图片画廊,42个jQuery图片画廊插件
  12. 数理统计 —— 总体、样本、统计量及其分布
  13. Shell脚本加密工具——Shc
  14. 怎样设定计算机屏幕锁定时间,电脑屏幕锁屏时间怎么设置
  15. 将java封装的实体类数据生成excel供下载
  16. 2063:【例1.4】牛吃牧草
  17. 【杰神说说】物联大师2.0版本预告
  18. Servlet 取表单的值
  19. c#时分秒毫秒微妙_c# - 将秒转换为(小时:分钟:秒:毫秒)时间的最佳方法是什么?...
  20. 海通股票交易系统通道接口错误怎么办

热门文章

  1. R7-3 极坐标->直角坐标 (10 分)
  2. 整数分解为若干项之和
  3. 凯撒密码加密算法 (8 分)
  4. 物联网项目--基于RFID的智能咖啡馆(Visual Studio+物联网虚拟仿真实验平台)
  5. cocos2dx热更新tmx的一个坑
  6. form组件、cookie、session机制
  7. django 笔记17 ModelForm
  8. CentOS7显卡驱动问题
  9. ArcGIS API For Silverlight使用在线地图的多种方法总结
  10. 【Packet Tracer 实验笔记5】