作者iFEELing (ing)
看板Database
标题Re: [问题] Oracle - 字元储存在Varchar2内的代码
时间Thu Sep 29 00:14:32 2011
※ 引述《gimmy731031 (yuancheng)》之铭言:
: 标题: [问题] Oracle - 字元储存在Varchar2内的代码
: 时间: Sat Sep 24 14:43:23 2011
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 218.211.83.106
: → iFEELing:TRY RAWTOHEX() 09/24 16:50
: → gimmy731031:楼上大大误会我的意思了~我的意思是Oracle是用什麽代 09/24 17:55
: → gimmy731031:码,不是指编码方式。eg:'!'是用0000000000000021存入 09/24 23:57
: → gimmy731031:想确定那串代码是什麽@@" 09/25 00:36
: → gimmy731031:回馈一下乡民 预设值是UTF-8 可用SQL与法看出 09/27 21:45
http://www.asciitable.com/
1. '!' 就是 0x21 ...
2. Oracle default charset 依照你安装时的设定决定,
没有特别指定的话 Oracle 会依据环境变数决定。
比如在正体中文Windows上安装,charset 很有可能是 ZHT16MSWIN950
而 National Charset 则通常会是 AL32UTF8 (?
如果你装的是 UN*X 则有可能你的 Charset 会是 UTF-8
3. 你的字元(character) 存进 Oracle 的时候,Driver会依据 client/server 端
的 NLS_LANG 决定要转成什麽样的编码(或不转)再存进资料库。
4. RAWTOHEX() 帮你把原始资料(RAW) 的 BYTE 转成 十六进位方式 (HEX) 显示给你看
5. 在 UTF-8 当中 '!' 也是 0x21 , 因为 ascii 的字在 UTF-8 中几乎都是原字码
6. 你可以用 RAWTOHEX 看看把中文字存进栏位後会读什麽出来。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.46.118.40
※ 编辑: iFEELing 来自: 114.46.118.40 (09/29 00:14)
1F:推 gimmy731031:感谢iFEELing大~又学到很多东西,感恩感恩^^~ 09/29 22:15