Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
can';t从java程序向oracle 11g数据库插入特殊字符_Java_Oracle - Fatal编程技术网

can';t从java程序向oracle 11g数据库插入特殊字符

can';t从java程序向oracle 11g数据库插入特殊字符,java,oracle,Java,Oracle,我正在从java程序向oracle 11g数据库中插入一些特殊字符,如> 某些字符被替换为–“替换为”。 请告诉我做这件事的正确方法。 提前谢谢 Manish您应该选择数据类型UTF8GENERALCI。对Oracle数据类型使用UTF-8编码。检查您的数据库是否设置为使用Unicode: select * from nls_database_parameters where parameter='NLS_CHARACTERSET'; 如果答案是AL32UTF8,您就可以了。如果它类似于

我正在从java程序向oracle 11g数据库中插入一些特殊字符,如>

某些字符被替换为–“替换为”。 请告诉我做这件事的正确方法。 提前谢谢


Manish

您应该选择数据类型UTF8GENERALCI。

对Oracle数据类型使用UTF-8编码。

检查您的数据库是否设置为使用Unicode:

select * from nls_database_parameters
   where parameter='NLS_CHARACTERSET';

如果答案是
AL32UTF8
,您就可以了。如果它类似于
WE8ISO8859P1
,您就有问题了。在这种情况下,没有简单的解决办法;您必须设置一个新的数据库实例。

您是否能够在数据库中存储这些有问题的字符,即通过另一个客户端,如SQLDeveloper?DB的字符集是什么?嗨,米克,谢谢你的回复。我的数据库字符集是WE8ISO8859P1,无法将其更改为utf-8。这就是为什么我将印地语文本转换成这些特殊字符并保存到数据库中。但正如你们所看到的,有些角色并没有被替换。嗨,弹药,谢谢你们的回复。是的,我的数据库字符集是WE8ISO8859P1,我无法将其更改为utf-8。如果您至少可以更改表结构,请对需要unicode支持的列使用NVARCHAR2而不是VARCHAR2。如果这也不可能,那么最后一个选择就是在将字符串写入数据库之前对其进行编码,并在读回字符串后对其进行解码。例如,您可以使用Base64编码或HTML编码将这些unicode字符串更改为ISO8859P1 VARCHAR2可以处理的内容。我试过NVARCHAR2,但结果一样。我想我错过了什么。操作系统级别或使用JDBC连接数据库时是否需要任何设置。可能是
NLS\U语言
环境变量?