使用php在oracle数据库中保存ansi特殊字符

时间:2017-07-06 12:16:08

标签: php oracle

有人可以告诉我如何保存 œ 来自ALT+0156我试图保存在数据库中但显示 ¿ < /强>

我环顾四周但找不到任何办法。目前我正在使用

NLS_LANGUAGE =  AMERICAN
NLS_CHARACTERSET = 'AL32UTF8'
CHARACTER SET   WE8ISO8859P1

实际上我需要在数据库中保存UTF8数据,但这些符号的格式不正确。请告诉我我错过了什么。

即使我在Oracle Sql Developer Tools

中运行了查询
select 'œ' val from dual;

返回

val => ¿ //as result

1 个答案:

答案 0 :(得分:1)

即使我在Oracle DB中遇到与特殊字符类似的问题。

您的oracle可能与该特定字符兼容,但您的服务器/系统不是,因此您需要添加名为NLS_LANG的环境变量。

对于Linux / Unix,您只需将其添加到.profile / .bash_profile

即可。
Eg. export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

对于Windows,您可以右键单击

PC -> Goto properties -> Advanced system settings -> Environmental Variables. 

路径:[控制面板\系统和安全\系统 - &gt;高级系统设置 - &gt;环境变量。 ]

在系统变量部分添加NLS_LANG变量。

注意:使用以下查询[在Windows / Linux中]返回要保存在此NLS_LANG环境变量中的值:

 select userenv('language') from dual

请注意,添加变量后需要重新启动Windows系统。

尝试以下参考链接&amp;做必要的配置:link,它应该有用。