精华内容
下载资源
问答
  • tomcat服务器如何配置字符集为utf-8彻底解决中文乱码的问题详解发布时间:2020-08-27 10:04:42来源:脚本之家阅读:145栏目:服务器什么是字符集在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕...

    tomcat服务器如何配置字符集为utf-8彻底解决中文乱码的问题详解

    发布时间:2020-08-27 10:04:42

    来源:脚本之家

    阅读:145

    栏目:服务器

    什么是字符集

    在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘插到老板的电脑上,文档就乱码了;小伙伴QQ上传过来的文件,在我们本地打开又乱码了。于是为了实现转换标准,各种字符集标准就出现了。简单的说字符集就规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。

    那么为什么会有那么多字符集标准呢?这个问题实际非常容易回答。问问自己为什么我们的插头拿到英国就不能用了呢?为什么显示器同时有DVI,VGA,HDMI,DP这么多接口呢?很多规范和标准在最初制定时并不会意识到这将会是以后全球普适的准则,或者处于组织本身利益就想从本质上区别于现有标准。于是,就产生了那么多具有相同效果但又不相互兼容的标准了。

    说了那么多我们来看一个实际例子,下面就是屌这个字在各种编码下的十六进制和二进制编码结果,怎么样有没有一种很屌的感觉?

    字符集

    16进制编码

    对应的二进制数据

    UTF-8

    0xE5B18C

    1110 0101 1011 0001 1000 1100

    UTF-16

    0x5C4C

    1011 1000 1001 1000

    GBK

    0x8CC5

    1000 1100 1100 0101

    引言

    我们在程序编写的过程中总是会遇到一些中文编码的问题,需要在程序中很多环节中去进行过滤和转义,依旧有可能遇到中文乱码的问题,下面是我的一个同事告诉我的方法,百时不灵,当然是针对于tomcat服务器来说的。

    此外,这个方法并不会对之前的那些方法造成冲突。

    服务器/conf目录/server.xml文件

    将相关语句改为:

    connectionTimeout="20000"

    redirectPort="8443" URIEncoding="UTF-8"/>

    之前的语句没有URIEncoding="UTF-8"这一句

    有朋友问了一个问题:这个方法好像只针对get请求有效,对于POST请求需要怎么解决呢?除了req.setCharacterEncoding("UTF-8");这个方法之外?

    其实乱码问题需要整个系统统筹规划的。从你的数据库设计,后台字符过滤,前台数据传递。单纯使用 req.set并不总会奏效。

    所以,你如果是post提交,第一检查数据库格式是不是utf8的,第二,post提交form表单有没有设置utf8

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对亿速云的支持。

    展开全文
  • 问题描述:1、将项目部署到服务器之后从页面接收的中文乱码2、数据库原有的数据都能正常显示产生原因:没有对Tomcat服务器和mysql进行配置更改解决流程:一、 修改Tomcat配置更改两个文件的配置1.server.xml(添加...

    问题描述:1、将项目部署到服务器之后从页面接收的中文乱码

    2、数据库中原有的数据都能正常显示

    产生原因:没有对Tomcat服务器和mysql进行配置更改

    解决流程:

    一、 修改Tomcat配置

    更改两个文件的配置

    1.server.xml(添加红色部分)

    URIEncoding="UTF-8" />

    2.web.xml

    setCharacterEncodingFilter

    org.apache.catalina.filters.SetCharacterEncodingFilter

    encoding

    UTF-8

    true

    默认tomcat7中上面这段代码在注释中,把它注释去掉。

    重启tomcat使配置生效。

    二、 mysql配置

    修改数据库的配置文件my.cnf文件,此文件如果通过rpm安装一般在/etc/目录下,具体修改成的样式如下图所示

    667b50b26e0bf37295288ddc4df93e9d.png

    修改完成后,我们保存配置的修改,然后执行命令service mysqld restart。重新启动数据库。

    进入mysql,使用status查看数据库信息,执行命令show variables like 'character%'; 查看更改后的编码格式,执行 use 数据库名;然后执行show create database 数据库名; show create table 数据表名;查看对应的数据库和数据表编码

    93c4105f4d7151f45a973f7a130cd35f.png

    ee36e9917f433f645c3e4cf4d0dba1b1.png

    e596482f1e1b9e8c2d01c91a45743afb.png

    修改此数据库的编码方式为utf8(默认是latin1)

    mysql> alter database 数据库名 character set utf8;

    SET NAMES 'utf8';

    展开全文
  • 服务器Tomcat 7最近,公司在做一个微信公众号开发的项目,与微信开发文档打了几天交道后,自己实现了不少的功能,但是在年底假期将至的催促下,我不得不加快进度,经同事推荐,我在开源社区GitHub上找到了几个成熟...

    一、背景

    工具:Myeclipse
    环境:Windows 7 64位
    服务器:Tomcat 7

    最近,公司在做一个微信公众号开发的项目,与微信开发文档打了几天交道后,自己实现了不少的功能,但是在年底假期将至的催促下,我不得不加快进度,经同事推荐,我在开源社区GitHub上找到了几个成熟的微信开发框架,在这里给大家推荐一下,如果喜欢用功能封装全面的,建议选择https://github.com/MyWikey/weixin-java-tools,功能很多,并且采用了Maven,但是因为配置复杂,所以我没选择;而是选择了一个叫WeChat4j的框架,里面封装的功能我大体看了下,基本够我用的了,github地址:https://github.com/MyWikey/wechat4j,主要是这个框架的开发文档写的特别好,感觉很简介、明确,API文档也让我很欣喜,另外不用去配置太多东西,在这里具体的配置步骤就不说了,后面项目完事会将我的过程总结一下,现在回到正题。

    二、问题及原因

    下载下这个框架并对我的微信一些参数配置完后,我想用这个WeChat4j框架实现这样一个功能:用户发送1,服务器向用户发送一个menu菜单,大体是这个样子:

        sBuilder.append("感谢关注我们的服务号\n\n");
        sBuilder.append("青岛XX在此祝您新年快乐\n\n");
        sBuilder.append("目前服务号正在开发中,给您带来不便请谅解!\n");
    

    但是当我把项目部署到Tomcat 7 的时候,我发现log信息打印出来的还有给用户反馈的消息竟然都是乱码,我首先在doGet()方法中添加了这段代码:

        response.setCharacterEncoding("UTF-8");
        response.setHeader("content-type", "text/html;charset=UTF-8");
    

    但是并没有什么用,重新部署后仍然是这个样子,于是我就上网搜啊搜,看到这个一篇帖子,我突然就懂了,大家可以自己去看看:http://blog.csdn.net/the_direwolf/article/details/45587727,说的很好,根据很多人的经验,确实觉得一般统一设置为uft-8即可避免中文乱码问题,但是这里不一样,原因是在框架中很多代码,在执行时均未能识别中文编码,即均未按utf-8进行解码,而是调用了系统的字符集进行了解码,大家都知道windows中默认的系统字符集一般为GBK,所以无论我们怎么设置,系统的字符集是不会变的,在这里,特别感谢这位大神,要不是它这篇文章,我或许已经放弃了,再次感谢。

    好了,找到了原因,那我们怎么去修改呢,其实根本的解决办法就是修改系统默认的字符集或修改jvm默认的字符集,而jvm跟系统的字符集默认是一样的,根据上面那位大神所说的,他在linux下面的操作,我们就会想到,在MyEclipse的jdk的选择地方,也就是windows->preference->java->Intstalled JRES中是不是也能够选择jvm启动的参数呢,其实是可以的,我们只需要这样修改:

    这里写图片描述

    把-Dfile.encoding=UTF-8添加到那里你再重新部署一下项目,你就会发现,发送到用户微信上的消息正常了,竟然不是乱码了,好开心啊,但是呢,tomcat打印打控制台的信息还有log4j打印出来的信息统统变成了乱码,悲剧了,这以后可让处女座的我怎么活啊,只能继续查找原因,终于经过1个小时的苦苦挣扎和寻找,正准备放弃呢,又有一位大神超人般出现在我的身旁,先鞠一躬,再上地址:http://blog.csdn.net/colin91/article/details/19976967,这篇博客,大神写的很明确,大家可以看下,我就不重复了,一步步做完,你会发现,tomcat以及打印信息一切正常,(我不会告诉你,此时的我开心的像只猴子)。

    三、总结

    记下这篇博客,是希望大家以后碰到这种问题可以参考一下,另外最重要的,是不要放弃自己碰到的每一个bug,当你忍不住要放弃的时候,或许他离你很近很近,只是因为霾太大,你看不清楚,一起坚持吧!!

    展开全文
  • 部署在eclipse上的web程序访问会出现乱码,只要是涉及到中文增删改,string转码都会出现乱码,eclipse上使用的是tomcat服务器,数据库是oracle。而 直接使用tomcat部署程序 则不会出现乱码。windows简体中文版,java...

    部署在eclipse上的web程序访问会出现乱码,只要是涉及到中文增删改,string转码都会出现乱码,eclipse上使用的是tomcat服务器,数据库是oracle。而 直接使用tomcat部署程序 则不会出现乱码。windows简体中文版,java默认启动时file.encoding=GBK。但是 在eclipse中启动时  用utf-8  那么内嵌启动时自动设置了file.encoding=UTF-8   这样2者不一致就出现了乱码   只要改成gbk就可以跟终端运行的情况一样,解决这个问题。当然  你也可以修改oracle的连接时指定数据库编码或者 file.encoding

    Strut2 + MySql + Hibernate + ajax(jQuery)中文乱码解决办法:

    1. 网页页面使用utf-8

    2. ajax默认使用utf-8传输数据, 但最好使用post, 不要使用get

    3. Struts2中使用UTF-8.

    3.1 在struts.properties中加上: struts.i18n.encoding=UTF-8

    [3.2 使用Filter: 从页面中传输数据到Struts2, 需要使用过滤器把数据在交给struts2前转换成utf-8的: http://stevieliu.blogchina.com/stevieliu/6223098.html]

    试过不使用3.2照常可以收到中文.

    4. 数据库也要使用utf-8, 在建表时设置好.

    http://imysql.cn/charset_tips

    5. hibernate.cf.xml配置文件中与数据库的连接符串也要标明使用的编码为utf-8: jdbc:mysql://localhost:3306/mlm?useUnicode=true&characterEncoding=UTF-8

    6: Tomcat也使用UTF-8

    6.1: Tomcat/bin/catalina.bat中开始部分(大概51行处)添加set CATALINA_OPTS=-Dfile.encoding=UTF-8

    或CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8"

    6.2:

    connectionTimeout="20000"

    redirectPort="8443" />

    Eclipse启动Tomcat会修改Tomcat的运行编码环境,从终端启动的又是另一种编码环境,所以Tomcat的配置也要手动修改

    7: HttpServletResponse(request)也要设置编码:response.

    setCharacterEncoding("UTF-8");

    展开全文
  • 我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘插到老板的电脑上,文档就乱码了;小伙伴QQ上传过来...
  • 今天因为中文乱码这个问题...GBK的乱码,——不认识的看似中文字 UTF-8的乱码 ——菱形的问号 1.刚开始中文乱码,第一个想到是哪里乱就在哪写转换编码~~~当然,被项目经理叼一顿 name = new String(name.get...
  • 我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘插到老板的电脑上,文档就乱码了;小伙伴QQ上传过来...
  • 我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘插到老板的电脑上,文档就乱码了;小伙伴QQ上传过来...
  • 这里需要设置一下Tomcat服务器的输出文字编码 找到conf文件夹下的 logging.properties 文件 找到这一行: java.util.logging.ConsoleHandler.encoding = UTF-8 将UTF-8修改为GBK,保存即可。 下图是修改后的启动...
  • 服务器比如tomcat接收get方法默认使用的是ISO-8859-1编码,而浏览器发送时文字编码是和页面编码保持一致的,所以后台给我们展示的字节就是一片乱码。 解决方法: 1.如果服务器Tomcat的话在server.xml文件里 ...
  • 问题描述:在项目使用了百度UEditor富文本编辑工具以及layUI的layer插件,本地运行tomcat没有问题,没有乱码,部署到服务器tomcat后UEditor和layer的文字全部乱码,其他自己的页面正常。 造成原因: 注:我...
  • spring页面中文乱码

    2019-07-30 18:12:44
    这两天写完的一个项目在本地测试完之后准备发布到服务器上去,发布到服务器之后我发现页面上所有的静态文字乱码了,可我在本地上测试的时候都是可以的于是我就在网上找的方法,找了前几个方法还是不可以最后在web....
  • 在移植过程中,最常见的问题之一就是字符集乱码,甚至有时候在上线一段时间后还会发现某些特殊中文字出现乱码,我们也经常会遇到来自于客户这样的疑问:“应用在Tomcat上跑的好好的,怎么一到Apusic上就乱码呢”。...
  • Servlet中文乱码问题

    2018-02-05 22:50:22
    在Java Web 开发的过程经常会遇到服务器给客户端的文字出现乱码的现象。下面来讨论下这个现象。 常见的字符编码: 1.iso-8859-1(主要是拉丁字母,不支持中文) 2.gb2312,gbk,gb18030(系统默认码,中国的国标码)...
  • 背景 开发导出文件的功能,遇到了两个坑 用ajax请求后台的文件导出接口,不会导出 用window.location.href请求后台地址,...2)tomcat中接收请求没有设置编码的情况下,默认使用ISO−8859−1编码。\color{red}2)tomca
  • 乱码问题

    2018-12-04 11:05:00
    主要原因是html编码是gbk,而其中的中文字内容是用utf-8 备注:gbk的范围囊括中文,只是编码方式冲突 解决方法(使用utf-8编码): <meta charset=utf-8" /> 前提:很多情况下(如很多协议传输数据...
  • jsp页面乱码或中文文件名不显示

    千次阅读 2009-12-13 23:14:00
    上边的可以解决页面的的文字乱码问题.还有一种情况是 比如文件路径问题,例如 虽然路径文件名都正常,但是就是显示不出图片 这时还需要修改服务器的编码. 例如Tomcat,修改conf文件夹下的server.xml,找到端口 比如
  • 这次项目刚好要用到在线编辑器,就上网找了fckeditor,网上资料挺多的,但改来改去还是花了不少时间!附件是我修改过的,置于webapps即可运行,由于时间紧逼,...tomcat服务器的server.xml修改这二处  &lt;...
  • 请求头二进制的内容右TomCat负责解码,TomCat8.0默认使用utf-8,可以解释一切国家文字。 以POST发送请求, 请求参数保存在请求体。 请求头二进制的内容由request负责解码,request默认使用ISO-8859-1, 此时如果请求...
  • Linux下网站搜索乱码

    2018-06-29 10:34:01
    网站搜索框搜索乱码,网址链接正常显示转码后的文字,可搜索内容是乱码。网站用tomcat跑,看网上解决方案,在server.xml设置URIEncoding="UTF-8" 没起作用由于是用nginx做反向代理,一直认为是nginx转发...
  • Get乱码的个人理解

    2013-04-20 17:22:00
    这个会对里面的0-9a-z不处理,对中文和其他文字对应处理下,中文会进行GBK编码处理,然后将这部分拼接成新的URL发送上去,对应tomcat的默认编码一般是iso8859-1,则会对这部分进行新的编码,这样服务器获得到的字节...
  • 这个原因是服务器导致的,服务器比如tomcat接收get方法默认使用的是ISO-8859-1编码,而浏览器发送时文字编码是和页面编码保持一致的,如果页面是使用utf-8 编码 get方法文字自然是使用utf-8编码,但接收服务器没有...
  • 这个原因是服务器导致的,服务器比如tomcat接收get方法默认使用的是ISO-8859-1编码,而浏览器发送时文字编码是和页面编码保持一致的,如果页面是使用utf-8 编码 get方法文字自然是使用utf-8编码,但接收服务器没有...
  • 字符流=字节流+编码表 使用tomcat服务器时,默认使用tomcat默认编码表 3. tomcat6.x tomcat7.x 默认全是ISO-8859-1 tomcat8.x默认使用UTF-8 4. 在jsp编程,getByte();默认使用ANSI 本地的编码...
  • 2020-08-09

    2020-08-09 22:06:56
    请求头二进制内容由Tomcat负责解码,Tomcat9.0默认使用【utf-8】字符集,可以解释一切图形文字,故不会出现乱码情况。 浏览器以POST方式发送请求,请求参数保存在【请求体】,在Http请求协议包到达Http服务器之后,...
  • 访问服务器上面的资源时,如果页面的编码格式与Tomcat中默认的不一样时难免会出现乱码的问题,针对这个问题,我们可以使用String类对相应的字符进行转码。 Tomcat默认全部的都是ISO-8859-1编码,不管你页面用什么...
  • 服务器比如tomcat接收get方法默认使用的是ISO-8859-1编码,而浏览器发送时文字编码是和页面编码保持一致的,所以后台给我们展示的字节就是一片乱码。 二.课后题: 5.1 JSP设置内置对象的目的是什么?他们在用法上...
  • 实例010 修改Tomcat服务器的端口号 实例011 配置Tomcat的虚拟主机 实例012 在Tomcat下如何手动部署Web应用 实例013 Tomcat如何制定主机访问 实例014 Tomcat如何添加管理员 实例015 Tomcat常用的优化技巧 1.3 ...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

tomcat服务器中文字乱码