如何解决Oracle 字符集设置
我在 ORACLE 中使用 adodb 遇到特殊字符(如“Ñ”、“á”)的问题: 当保存在 varchar2/varchar 字段 de 表中时保存其他字符“¿”。
如果与 oci8 conect 连接(直接到 oracle)特殊字符被正确保存。
连接时如何设置字符集?
($db->Connect(TNS_database,USER,PASSword));
谢谢!!!
解决方法
使用 ADOdb,您应该设置 Oracle 'client'(即 PHP OCI8)字符集。有两种方法可以做到这一点:
-
在启动 PHP 的 shell 中,您可以将环境变量
NLS_LANG
设置为“.AL32UTF8”之类的内容(以句号开头)。如果 PHP 是从 Web 服务器调用的,那么您需要确保使用正确的语法在正确的位置设置此变量。 -
或者,您可以使用一些 ADOdb 函数,例如 setConnectionParameter 或 setCharSet。我不清楚用于 Oracle 的确切语法。您将需要通过堆栈进行一些调试。您想要的是 https://github.com/ADOdb/ADOdb/blob/v5.21.0/drivers/adodb-oci8.inc.php#L253 中的
$this->charSet
成为字符串AL32UTF8
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。