|
Re: 那就引发了一个新的问题
最初由 chengyong 发布
[B]如果需要开发一个软件需要在ORACLE实现多语言共存 CS结构的
例如这个例子的日文和中文(英文和中文由于存在严格超集所以不用讨论)
数据库存放UTF8,那么日文和中文都转化成UNICODE保存在数据库中
但是取回的时候,又发生了转化,中文转日文发生无法转换
是否可以设置NLS_LANG=ALT32UTF8哪?
如果不行的话,是否可以论证中文日文在这个CS结构无法实现共存
除非使用OCI直接取出和保存UNICODE才可以?
不好意思 有些跑题了 涉及了开发的问题
按照ORACLE自己的标准架构,好像总是有这个中间转换层存在的 [/B]
1:数据库存储选择一个能同时兼容 中文和日文的编码字符集,然后所有client的 NLS_LANG设置和数据库字符集一样。
2:干脆就使用单字节字符集,当然所有client 的NLS_LANG设置也可数据库字符集一样。
3:有可能,你把信息都当二进制流存储进数据库,取出来再转换也应该可以
4: 如果使用 16bit 的字符集A存储其他16bit 的字符集B,如果B的这个编码在A中不存在,则数据库将存成 ??? 这样的无法识别的字符。同理大于8bit的字符集编码之间都可能存在类似问题,所以需要选择一个能兼容的字符集来存储。
数据库只关心两个问题:
数据库字符集是否能支持存储传过来的编码
client nls_lang设置和数据库存储字符集一致以使得编码不发生转化。 |
|