我应该使用什么NLS_NCHAR_CHARACTERSET和NLS_CHARACTERSET?我使用VARCHAR2来存储文本。我想支持中文和其他角色。应用程序将在Java和Hibernate中编写。我应该使用AL32UTF8吗?使用UTF16而不是UTF8有什么问题吗?
答案 0 :(得分:0)
UTF-16: Each character is either 2 or 4 bytes long.
UTF-8: Each character takes 1 to 4 bytes to store.
通常我用我的外语(俄语,土耳其语,阿拉伯语......)utf8,但我在文档中从未遇到过这方面的问题。
UTF-16优于UTF-8的好处如下:
亚洲脚本的更紧凑的存储空间,因为大多数常用的亚洲字符用两个字节表示。
更好地兼容Java和Microsoft客户端
UTF-16编码是Unicode的16位编码。是UCS-2的扩展
UTF-8是Unicode的8位编码。它是一个可变宽度编码和ASCII的严格超集。
在oracle Supporting Multilingual Databases with Unicode中阅读更多内容,Choosing a Character Set可能包含可能的信息