打印

lnmp1.2版本安装GBK版本的discuz X3.2乱码

lnmp1.2版本安装GBK版本的discuz X3.2乱码

PHP版本:PHP 5.6.9 (cli) (built: Mar  1 2016 12:06:49)
MySQL版本:mysql  Ver 14.14 Distrib 5.5.42, for Linux (x86_64) using readline 5.1
nginx版本:nginx version: nginx/1.8.0
discuz版本:简体中文GBK(Discuz_X3.2_SC_GBK.zip)
OS:CentOS release 6.5 (Final)

程序上传方式:
wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip
unzip Discuz_X3.2_SC_GBK.zip

浏览器:IE11(自动编码)、Chrome 50.0.2652.2、firefox 42,全部都是自动编码,默认UTF8
浏览器均没有判断正确。

通过抓包发现是因为在response header里面通通返回了content-type:UTF-8

nginx配置文件:
复制内容到剪贴板
代码:
user  www www;

worker_processes auto;

error_log  /home/wwwlogs/nginx_error.log  crit;

pid        /usr/local/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;
        default_type  application/octet-stream;

        server_names_hash_bucket_size 128;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        #limit_conn_zone $binary_remote_addr zone=perip:10m;
        ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.

        server_tokens off;
        #log format
        log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
                access_log off;

server
    {
        listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;
        server_name www.lnmp.org;
        index index.html index.htm index.php;
        root  /home/wwwroot/default;

        charset gbk;
        
        #error_page   404   /404.html;
        include enable-php.conf;

        location /nginx_status
        {
            stub_status on;
            access_log   off;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/access.log  access;
    }
include vhost/*.conf;
}
即使设置了GBK字符集(也试过了设置gb2312字符集),在response header里面通通返回content_type:utf-8
修改过conf文件之后,均重启过nginx+重启过系统,但毫无作用

除了nginx的配置文件外,其他全部都是lnmp1.2的默认配置,没有做过任何修改。

难道lnmp不支持gbk程序?

[ 本帖最后由 work4seo 于 2016-3-3 15:41 编辑 ]

TOP

直接charset gbk; 就行,我这边测试也没有问题
[root@vpser ~]# curl -IL 69.163.35.abc
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 03 Mar 2016 10:51:06 GMT
Content-Type: text/html; charset=gbk
Content-Length: 2502
Last-Modified: Wed, 02 Mar 2016 02:18:16 GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: "56d64d68-9c6"
Accept-Ranges: bytes

你建站是建站默认虚拟主机目录吗?
如果不是建在默认虚拟主机目录,你改默认虚拟主机的配置是不影响其他虚拟主机的

LNMP付费问题排查/LNMP技术支持/Paypal信用卡代付/代购VPS,域名,软件等 QQ 503228080 旺旺 lzhenbao
军哥淘宝店铺
QQ/旺旺仅提供代购及付费代维/问题解决等服务,其他不回复!LNMP相关问题请在本论坛发帖,提问前先搜索,按https://bbs.vpser.net/thread-2555-1-1.html 要求反馈问题!

TOP

回复 2# 的帖子

我已经快崩溃了,已经好几天了,这个诡异的问题还是没有搞定
默认目录(未添加虚拟主机的情况下)
周日的时候试着添加了虚拟主机,在虚拟主机目录下,修改了vhost目录下对应的配置文件
通通都是乱码。
因为数据库的问题,限定了只能用GBK的DZ版本

TOP

没关系,,,也就在你安装的时候会显示乱码,   你自己手动改一下为gbk编码安装就成了,   
安装后就正常显示的.  因为安装php页面没有做强制编码,   安装后论坛配制里是强制GBK编码的..      
这个不影响你论坛的正常运行.

如果实在纠结这个,,,那你就强制把php.ini 里的默认编码改为  bgk就成了

sed -i 's/default_charset = \"UTF-8\"/default_charset = \"gbk\"/g' /usr/local/php/etc/php.ini
/etc/init.d/php-fpm restart

如果你的程序都是GBK程序还好,,要是还有Utf-8程序,,那也会出现乱码,编码不能正常识别.

TOP

我跟楼主一样问题,解决办法是:修改/usr/local/php/etc/php.ini文件 default_charset = ""
我们这里也不要写GBK编码,你写了后这台服务器如果安装UTF-8编码程序有又有问题,所以我们都不写,让自动默认。

TOP