java部署ubuntu后中文显示问号问题

摘要:
40100DEFAULTCHARACTERSETutf8*/|+----------+------------------------------------------------------------------+3.导入数据库文件中的表、字段的编码方式都修改成utf8可以直接改.sql文件,改完导入。也可以先导入,再用命令查看和更改。很多网上的文章执行“sudovi/

1、首先先回忆自身项目的编码格式,即在本地进行编码时使用的编码格式。UTF-8
2、检测tomcat的设置问题,在web.xml和server中的设置:
server.xml中:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" 
URIEncoding="UTF-8" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"  URIEncoding="UTF-8"/>

web.xml中以下内容去掉注释:

<filter>
        <filter-name>setCharacterEncodingFilter</filter-name>
        <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <async-supported>true</async-supported>
    </filter>

3、检测ubuntu服务器中的编码格式

//检测本地语言环境:
locale
//进行配置的修改
vi /etc/profile
//添加下列行(LC_ALL表示全部设置,但不影响LANG):
export LANG="en_US.UTF-8"
export LC_ALL="zh_CN.UTF-8"
//设置后使其起效
source /etc/profile
//当出现 cannot 错误时 ,使用以下命令进行安装相应语言包
sudo locale-gen zn_CN.UTF-8
//当起效后,要再次进入配置中修改,将刚添加的两行删除,不然会影响jdk环境

4、mysql的配置
1.修改mysql默认配置:
默认的mysql配置:server、client都是latin1,对中文是不支持的,这里改为utf8
方法:
修改配置文件:

vim /etc/mysql/my.cnf

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

重启mysql

/etc/init.d/mysql restart

检查编码方式:

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
2.修改项目使用的数据库的配置
修改此数据库的编码方式为utf8(默认是latin1)
mysql> alter database 数据库名 character set utf8;

查看此数据库的编码:
mysql> status

Connection id: 41
Current database: tslcrms
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 53 min 14 sec

mysql> show create database tslcrms;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| tslcrms | CREATE DATABASE数据库名/*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+------------------------------------------------------------------+

3.导入数据库文件中的表、字段的编码方式都修改成utf8
可以直接改.sql文件,改完导入。
也可以先导入,再用命令查看和更改。

附:在mysql中使用命令修改字符集:
mysql> SET character_set_client = utf8 ;

 mysql> SET character_set_connection = utf8 ;
 mysql> SET character_set_database = utf8 ;
 mysql> SET character_set_results = utf8 ;
 mysql> SET character_set_server = utf8 ;
 mysql> SET collation_connection = utf8 ;
 mysql> SET collation_database = utf8 ;
 mysql> SET collation_server = utf8 ;

SET NAMES 'utf8';
相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

5、另外
mysql默认的字符集为latin1的,所以要改为utf8的。很多网上的文章执行“sudo vi /etc/mysql/my.cnf”,可是打开一看,里面就两行话:

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

想来mysql的配置文件应该是在那两个文件夹下面,于是尝试之下打开了/etc/mysql/mysql.conf.d/ 下的mysqld.cnf文件,执行下面的命令:

~$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

[client]
default-character-set=utf8

[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

后重启Mysql服务器
~$ sudo /etc/init.d/mysql restart
~$ mysql -u root -p
mysql> show variables like "%char%"
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

免责声明:文章转载自《java部署ubuntu后中文显示问号问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?charles 右键菜单下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Debian下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本

说明:  1、备份MySQL数据库存放目录/var/lib/mysql下面的osyunweidata数据库到/home/mysql_data里面,并且保存为osyunweidata_bak_2012_06_30.tar.gz的压缩文件格式(2012_06_30是指备份执行时当天的日期),最后只保留最近7天的备份 2、上传/home/mysql_data里面...

PgSQL基础之 pgsql与mysql的简单区别

1、支持的booloan类型的值   mysql并不支持boolean类型,即便当我们创建了boolean的字段属性之后,mysql会自动将其转化为tinyint(1)类型。当插入“true”的时候,其值自动转化为1。当插入"false"的时候,其值自动转化为0。使用select进行取值的时候,我们搜索出来的也是0和1。而pgsql是支持boolean的,...

Kubernetes的搭建与配置(二):部署 Wayne 用户界面

1、关于Wayne 简介 GitHub:https://github.com/Qihoo360/wayne Wayne是一个Kubernetes的可视化管理平台,通过直观的页面操作便可完成Kubernetes中资源的创建、部署等操作。 采用微内核架构,通过插件化的方式将不同功能尽量的分离,更利于各种定制化功能的扩展。 在此基础上,融入了部门、项目的概念,通...

PCIe固态存储和HDD常见的硬盘性能对比测试

2周测试后,导致以下结果 MySQL-OLTP测试结果:(50表。每个表1000广域网数据,1000个线程) TPS:MySQL在PCIe固态存储上执行是在HDD上执行的5.63倍 writes:MySQL在PCIe固态存储上执行是在HDD上执行的5.58倍 reads:MySQL在PCIe固态存储上执行是在HDD上执行的5.55倍 R...

4、MySQL 申明变量给查询数据编号

摘自:   https://www.cnblogs.com/qixuejia/archive/2010/12/21/1913203.html   https://blog.csdn.net/arbben/article/details/78665389 1、mysql中变量不用事前申明,在用的时候直接用“@变量名”使用就可以了。    mysql定义用户变...

浅析MySQL 8忘记密码处理方式

        对MySQL有研究的读者,可能会发现MySQL更新很快,在安装方式上,MySQL提供了两种经典安装方式:解压式和一键式,虽然是两种安装方式,但我更提倡选择解压式安装,不仅快,还干净。在操作系统上,MySQL也支持多类型操作系统,如linux,windows等,如下为MySQL几个重大变化的操作系统。             通过研究分析,不...