我知道oracle数据库有两个字符集:
NLS_NCHAR_CHARACTERSET
和NLS_CHARACTERSET
.
我将它们设置为:
NLS_CHARACTERSET WE8MSWIN1252
NLS_NCHAR_CHARACTERSET UTF8
当我创建数据库时。
我也创建了我的表使用NVARCHAR
,VARCHAR
所以它应该被保存使用UTF8
:
ID NUMBER
EMAIL NVARCHAR2(255)
USER_NAME NVARCHAR2(255)
POST_AT DATE
CONTENTS NVARCHAR2(255)
但是我无法获得正确的输出。当我插入包含日文字符的行时,它只会发出“???” 当我在终端检查时。
我不知道为什么它不起作用。有谁知道解决这个问题的方法?
另外,如果我不在乎它是如何保存在数据库中的,只是想在从数据库中取出后得到正确的输出,有没有什么方法可以正确解码它?(我尝试了几种方法来转换编码但不起作用)
我使用 PHP 的 OCI8 来访问数据库。oracle 数据库的版本是 oracle 11gR2 for linux.x64