字符编码: ANSI/UTF-8/UCS2(UTF-16),以及回车换行
来源:互联网 发布:java webclient post 编辑:程序博客网 时间:2024/04/29 09:35
回车/换行:
=================
顾名思义,回车和换行是两个不同的控制字符:
在不同的操作系统平台上,默认是用不同的控制符来标志一行的结束:
这种不同实现导致的结果就是Winodws上的标准文本文件在其它平台上会多出一个^M控制符,而其它平台的文件在Windows上看会只有一行。Linux上有dos2unix/unix2dos命令来解决文本换行的问题。
字符编码:
=================
文字是人类的语言,对于计算机来讲,语言就是0和1而已,因此将字符保存在计算机里就会涉及到字符编码的问题。网上有许多文章和博客介绍不同字符编码方式,这里就不引用了。列一些我自己理解的重点:
ASCII:ANSI
最初的计算机存储有限,字符的存储使用的是8位的ASCII码(最高位为0),最多可以存储128个字符,加上扩展ASCII码(最高位为1)也只能存储256个字符。于是,各国都制定了自己的兼容ascii编码规范,就是各种ANSI码,来表示不同的语言中的不同文字。于是同样的ASCII码在不同的字符集(Collation/CharSet/Code Page)上就可以表示不同的字符,这就是为什么ANSI字符一定要与特定的Collation绑定才能表示唯一正确的字符,绑定错了就可能出现乱码(ascii码小于128的字符不会乱码)。
Unicode
又名万国码,所有语言的所有字符都可以用唯一的Unicode码来标识。Unicode有几种不同的实现方式:
如何区分不同编码的文件:
用UltraEdit或者类似编辑器打开文本文件,切换到Hex Mode(ctrl + h),看文件头:
Unicode与SQL Server:
================
UTF-8是目前使用最广泛的Unicode编码格式,但是SQL Server使用的是UTF-16作为Unicode字符的编码格式,即NCHAR/NTEXT/NVARHCAR存储的都是双字节编码的Unicode字符,以N为前缀(比如N'Hello')的字符串即为双字节Unicode字符。对于UTF-8字符串,如果它只包含ANSI字符,则可以按照ANSI串处理;否则的话必须将UTF-8串转换成UTF-16、再交给SQL Server 处理。这种行为可能带来两个常见的问题:
关于看不见的字符0x1D
====================
这个字符为GROUP SEPARATOR,作用是分组,怎么用这个控制字符取决于应用程序。在MS SQL和SSIS中,这个字符并没有特别含义;但是Netezza确实把这个字符当作分隔符使用,导致在数据导入时分栏错误。遗憾的是Netezza的EXTERNAL TABLE导入时没办法控制batch size,所以排查这种问题比较麻烦。对于控制字符,可以在引用EXTERNAL DataSource的时候加上CTRLCHARS TRUE选项,则可以将控制字符作为字段内容录入。
- 字符编码: ANSI/UTF-8/UCS2(UTF-16),以及回车换行
- ANSI/UTF-8/UCS2(UTF-16),以及回车换行
- 字符编码 Unicode UTF-8 UTF-16 UTF-32 ANSI
- 字符编码(ucs2 ucs4 utf)
- 字符编码,ansi, unicode,utf-8, utf-16
- [转]字符编码,ansi, unicode,utf-8, utf-16
- 字符编码,ansi, unicode,utf-8, utf-16
- 字符编码 ansi, unicode, utf-8, utf-16
- 字符编码方式及判断整理(ANSI,Unicode,utf-8,utf-16,utf-32)
- 字符编码(ANSI,UTF-8,BINCODE)
- 字符编码:ANSI, UNICODE, UTF
- 字符编码:ANSI、UNICODE、UTF
- 字符编码(Unicode UTF-16 UTF-8 ANSI)学习总结
- 字符集(ASCII ANSI UNICODE)与字符编码 (UTF-8 UTF-16)
- 字符编码问题,UNICODE\UTF-8\UTF-16\UTF-32\UCS\ANSI\GBK\GB2312等乱七八糟的名词
- 字符编码问题,UNICODE\UTF-8\UTF-16\UTF-32\UCS\ANSI\GBK\GB2312等乱七八糟的名词
- 实现UTF-8、UCS2编码和解码
- 字符编码(ASCII、ANSI、UNICODE及UTF-8编码)
- 为什么sata比pata快
- Delphi下的COM编程
- CentOS安装GD库支持
- Ubuntu桌面路径问题
- 天使投资人李治国:谈创业
- 字符编码: ANSI/UTF-8/UCS2(UTF-16),以及回车换行
- E-R图
- 基于Lucene3.5.0如何从TokenStream获得Token
- U盘安装Ubuntu
- centos5最小化安装+apache+php+mysql+gd+zend+phpmyadmin
- 让Fedora 11支持RAR解压
- 在ActionScript中替换子字符串
- at91sam9260 开发环境的建立
- PuTTY/Putty设置成安全SSH代理服务器