【发布时间】:2017-09-24 22:32:42
【问题描述】:
我对使用带有 Instantclient 12.2、php 5.6 和 oci8(2.0.12) 的 debian 8 服务器的编码感到绝望。
我在 php 网站本身中遇到了编码问题,我通过在 php.ini 中将 php 编码设置为 ISO-8859-1 解决了这个问题。 -> 所以编码,包括所有欧洲字符,都适用于 php。
现在我的问题是我从 oracle12c 数据库中检索到的数据编码不正确。所以我得到了
a for ä
o for ö
u for ü
? for ß
当从 php 保存到数据库时,也会发生同样的事情。
在 sqlplus64 客户端中,数据被正确编码,所以我猜它与 oci8 有关。
我尝试了什么:
我已经将NLS_LANG 参数设置为GERMAN_GERMANY.WE8ISO8859P1 和GERMAN_GERMANY.UTF-8,尝试手动给oci_connect() 一个字符集,尝试了apache2.conf 和php.ini 的所有编码选项,尝试通过覆盖最终加载的配置.htaccess 文件和东西。但这些都不起作用。
也许有人知道出路?
【问题讨论】:
-
不,正如我所提到的,我尝试手动设置。什么都不设置时,取NLS_LANG参数。
标签: php oracle apache .htaccess encoding