php - Oracle 字符集设置
问题描述
我在 ORACLE 中使用 adodb 对特殊字符(如“Ñ”、“á”)有疑问:当保存在 varchar2/varchar 字段中时,请保存其他字符“¿”。
如果与 oci8 conect (direct to oracle) 连接,则特殊字符会正确保存。
连接时如何设置字符集?
($db->Connect(TNS_database, USER, PASSword));
谢谢 !!!
解决方案
使用 ADOdb,您应该设置 Oracle 'client'(即 PHP OCI8)字符集。有两种方法可以做到这一点:
在启动 PHP 的 shell 中,您可以将环境变量设置
NLS_LANG
为类似“.AL32UTF8”(带有前导句号)。如果从 Web 服务器调用 PHP,则需要确保使用正确的语法将此变量设置在正确的位置。或者,您可以使用一些 ADOdb 函数,例如setConnectionParameter或setCharSet。我不清楚用于 Oracle 的确切语法。您将需要通过堆栈进行一些调试。你想要的是
$this->charSet
在https://github.com/ADOdb/ADOdb/blob/v5.21.0/drivers/adodb-oci8.inc.php#L253 作为字符串AL32UTF8
。
推荐阅读
- java - 清单中 Jar 的 JDK 版本与构建版本不匹配
- sql-server - 如果符号存在,则从 SQL Server 中的字符串在符号之后到字段末尾的子字符串
- python - (问题)python:如果语句将字符串附加到错误的列表
- docker - Get-PSRepository,powershell 警告:尝试在 WindowsServer2016 中安装 Docker 时“找不到模块存储库”
- c++ - 在 C 中使用 MPI I/O 管理大型向量
- amazon-quicksight - 包含空值的 Quicksight 控件
- python - 我如何生成没有模型的 Django 站点地图
- flutter - 文本字段上的颤动滚动条
- google-cloud-platform - BigQuery 中的表视图是否受益于分区/集群优化?
- python - Python /由函数构建的字典中的错误顺序