我有一个特殊字符的问题,比如"ñ"á"在ORACLE中使用adodb:当保存在varchar2/varchar字段表中时,保存其他字符";?"。
如果连接到oci8 conect(直接到oracle(,则正确保存特殊字符。
连接时如何设置字符集?
($db->Connect(TNS_database, USER, PASSword));
谢谢!!!
使用ADOdb,您应该设置Oracle的"客户端"(即PHP OCI8(字符集。有两种方法可以做到这一点:
-
在启动PHP的shell中,可以将环境变量
NLS_LANG
设置为类似"的值;。AL32UTF8";(以最前面的句号(。如果PHP是从web服务器调用的,那么您需要确保使用正确的语法将该变量设置在正确的位置。 -
或者,您可以使用一些ADOdb函数,如setConnectionParameter或setCharSet。我不清楚Oracle使用的确切语法。您将需要通过堆栈进行一些调试。您想要的是
$this->charSet
https://github.com/ADOdb/ADOdb/blob/v5.21.0/drivers/adodb-oci8.inc.php#L253作为字符串CCD_ 4。