如何在oracle数据库中正确显示日语字符


How can I get japanese character correctly shown in oracle database

我知道oracle数据库有两个字符集: NLS_NCHAR_CHARACTERSETNLS_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

如果所有其他方法都失败了,您可以在插入之前 http://php.net/manual/en/function.base64-encode.php 字符串,并在获取后解码。最坏的情况。

感谢所有的帮助。如果不重新创建数据库并重置字符集,我就无法解决此问题......我学到的一件事是,在创建预言机数据库时必须注意初始设置......