添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1:表单提交controller获得中文参数后乱码解决方案

注意: jsp页面编码设置为UTF-8

form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<form action="${ctx}/user/addUser" name="userForm" method="post">  

修改web.xml,增加编码过滤器,如下(注意,需要设置forceEncoding参数值为true)

<filter>
		<filter-name>characterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
    	<filter-name>characterEncodingFilter</filter-name>
    	<url-pattern>/*</url-pattern>
  	</filter-mapping>

这里需要注意的是,最好把这段代码放在web.xml中开头的位置,因为拦截有顺序,如果放在后面的话容易拦截不到。

第二种情况:

数据库中文数据, jsp 页面显示乱码(不是严格意义上的乱码,而是以问号的形式呈现)

由于我们前后台的数据交互使用的是json数据,出现这种情况的原因我也不太清楚,之前也没遇到过,只能怪自己做过的项目太少,解决起来也不困难,只需要在转json的时候设置一下编码格式就可以了,代码如下:

<datasource jta= "true" jndi-name= "java:jboss/datasources/JcMysqlDS" pool-name= "JcMysqlDS" enabled= "true" use-java-context= "true" > <connection-url>jdbc:mysql: //192.168.24.46/ITOO_BASIC_BASIC?useUnicode=true&characterEncoding=UTF-8</connection-url> <driver>mysql</driver> <prefill> false </prefill> <use-strict-min> false </use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <user-name>root</user-name> <pass<a href= " http://www.it165.net/edu/ebg/ " target= "_blank" class = "keylink" >word</a>> 123456 </pass<a href= " http://www.it165.net/edu/ebg/ " target= "_blank" class = "keylink" >word</a>> </security> </datasource>

大家都知道,无论是底层使用的是纯粹的jdbc还是hibernate还是jpa都好,其实本质上都是jdbc,对应的框架只不过在相关的基础上进行特定的封装。所以无论是什么样的技术,都会用到连接到数据库的url。所以url首先是需要检查的

1.url

标准情况会在相应的后面加上相应的字符集设置,如下

如上,useUnicode就不用说了,连接数据库中设置的字符集,&amp这是什么的?这就有问题了,在xml中&amp是&的转义字符。如果你是用xml来配置对应的数据库连接配置的话就什么问题了。但是如果用的是**.properties就有问题了,则必须将amp除去即可。这个确实是lz经历了头破血流的经验啊。

2.数据库

这里的问题也是相对比较难处理的,登录数据库

i:查看数据库编码格式

<img width="576" height="378" style="width: 630px; height: 413.52px; display: inline;" alt="计算机生成了可选文字:夕sql>useitcastoaatabasechanged夕sql二status夕sqlUer14。14Distribs。6。19,forUin64onnectionid:u犷犷entdatabase:LtrrentLtser:SL:singdelimiteP:e护ue护ue护sion:rotocolve犷sion:onnection:e犷uercha犷acterset:bcharacterset:lientcha护acte护set:onn。cha护acte护set:CPport:ptine:1itcastoarootelocal卜ostHotinuse;5。6。19H夕SQLCo。。unit夕Seruer1日localhostviaTCP/IPlatinlUtfsgbkgbk33日61hour51oin4?sechPeads:S:6日1Questions:7que护iesPe护second510讨querie忍:日opens:" src="http://www.2cto.com/uploadfile/Collfiles/20150302/20150302094234206.png" 7plu忍htahle忍:1opentablaug:日。日日1夕sql>"="">

可以看到server的字符集还是latin1,这里就需要讲一下常用的字符集了。

为了世界的和平和繁荣昌盛,ISO组织指定了一套unicode字符集方案,Unicode编码是不同编码之间相互交流转换的桥梁,包含了32位二进制,所以能容纳2的31次方的字符,有生之年是够用了。而根据不同的需要Unicode又分为三种方案。

Utf8:用以解决国际上不同语言而出现的编码。对英文是使用8位,中文则为3位。可以在任何支持utf9字符集的 浏览器 上显示,无需另行处理。

另外两种为utf16和32,这里不再编著。大家自行查阅即可,总的还是因为存储和使用的方便来决定使用哪种。

好了,另外相对熟悉的就是gbk,俗称国标码,中国国家标准来制定,仅仅包含中文字符。所以相对两讲,utf8的兼容更好,但是存储量更大。

马上回来,大致对字符集充了电还是回来先解决问题。这里所以用gbk或者utf8都是可以的。但是latin1肯定是不可以的,这里主要通过这样一个命令来设置

分别设置设置了服务器、 数据库 和数据表部分的编码,必须设置连接编码。连接编码设置如下:

mysql > SET character_set_client='gbk';

mysql> SET character_set_connection='gbk'

mysql> SET character_set_results='gbk'

设置好编码,下面便可以成功插入中文了,其实用一句话即可解决

查看数据库编码格式

show variables like 'character_set_%';

查看数据库中的表的创建

show create table tablename;

设置数据库编码格式

setnames 'gbk';

早上发现,swagger-ui.html的中文标题发生 乱码 , 然后首先尝试了改动编译器的FileEncoding为UTF-8,但是没有解决,然后打开页面源码发现也是UTF-8,后来把application-properties中的中文删掉,然后重写,问题完美解决。 可能的原因是之前使用的GBK系统默认的编码写的中文,然后格式转为UTF-8也能正确显示,但是格式本身存在问题。...
由于刚开始学习这个Framework,所以很多东西也不是特别清楚,以前在JB环境下也没怎么遇到 乱码 问题。这次试了很多方法都不行,于是决定加个Fileter了,web.xml部分内容如下:   &lt;filter&gt;   &lt;filter-name&gt;SetCharacterEncoding&lt;/filter-name&gt;   &lt;filter-class&gt;
相信大家在开发初期遇到 中文乱码 问题一定是一头雾水,不是数据库 乱码 了就是页面 乱码 了或者传值时 乱码 。其实解决 乱码 的途径很简单,就是统一编码与解码的类型,我把自己遇到的 乱码 问题整理出来,希望能够对大家有用。首先需要对ide下的编码做统一,我使用的是idea,在页面下面如图所示都有文件编码类型,选择utf-8: 配置完后,需要对idea的全局编码也进行配置,在idea的配置中进行设置,Preference
浏览器对表单中数据进行编码;根据网页的ContentType="UTF-8"进行编码。由于POST传来数据Tomcat默认以ISO-8859-1编码成单字节数据 浏览器与服务器编码方式不一致会出现 中文乱码 问题 在Servlet中解决方案: 使用request.setCharacterEncoding(“UTF-8”),仅支持post方法 更改tomcat中默认编码格式 用 Spring 提供的中...
1. &lt;!DOCTYPE&gt; 声明位于文档中的最前面的位置,处于 &lt;html&gt; 标签之前。 2. 此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。 所以,楼主的这个声明: &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1...
第一区Region1美国、加拿大、东太平洋岛屿 第二区Region2日本、西欧、北欧、埃及、南非、中东 第三区Region3台湾、香港及韩国、泰国、印尼等东南亚地区和国家 第四区Region4澳洲,新西兰,中南美洲,南太平洋岛屿 第五区Region5俄罗斯、蒙古、印度半岛、中亚、东欧、朝鲜...
正斜杠,又称左斜杠,符号是"/";反斜杠,也称右斜杠,符号是"\"。     在Unix/Linux中,路径的分隔采用正斜杠"/",比如"/home/hutaow";而在Windows中,路径分隔采用反斜杠"\",比如"C:\Windows\System"。     有时我们会看到这样的路径写法,"C:\\Windows\\System",也就是用两个反斜杠来分隔路径,这
不多说,直接上代码。关于zookeeper 的一些介绍和场景,会过一段时间总结发出来。这里是java 操作zookeeper 的api。默认已经在本机安装好了zookeeper 的serverpom.xml 如下<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zooke