php pdo oracle中文乱码的快速解决方法
先查一下oracle的编码 :

SELECT * FROM NLS_DATABASE_PARAMETERS
在/etc/profile.d/简历oracle.sh
内容如下在NLS_LANG设置编码
|
然后修改 /etc/init.d/php-fpm
在头部增加
. /etc/profile.d/oracle.sh . /etc/init.d/functions . /etc/profile.d/oracle.sh # Check that networking is up. . /etc/sysconfig/network # Additional environment file if [ -f /etc/sysconfig/php-fpm ]; then . /etc/sysconfig/php-fpm fi if [ "$NETWORKING" = "no" ] then exit 0 fi RETVAL=0 prog= "php-fpm" pidfile=${PIDFILE-/ var /run/php-fpm/php-fpm.pid} lockfile=${LOCKFILE-/ var /lock/subsys/php-fpm} |
然后重新启动php即可
有的机器上找不到 php-fpm (lanmp环境)
折中方法 亲测可用
1、在 /etc/profile.d 下新建oracle.sh
内容如下 :
ORACLE_HOME=/usr/lib/oracle/12.2/client64
C_INCLUDE_PATH=/usr/include/oracle/12.2/client64
LD_LIBRARY_PATH=$ORACLE_HOME/lib
#remember this is the client NLS_LANG not the server one
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_HOME LD_LIBRARY_PATH NLS_LANG
service httpd restart
2、在etc/rc.local文件中添加
/etc/profile.d/oracle.sh
其实就是:
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export C_INCLUDE_PATH=/usr/include/oracle/12.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=AMERICAN_AMERICA.UTF8
在php中则是
//putenv("LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib");
//putenv("ORACLE_HOME=/usr/lib/oracle/12.2/client64");
注意不要重复指定
putenv("NLS_LANG=AMERICAN_AMERICA.AL32UTF8");
版权声明
本文仅代表作者观点,不代表Csuper立场。
本文系作者授权百度百家发表,未经许可,不得转载。