表单(form) post 方式提交时的字符集编码与乱码(上)--application/x-www-form-urlencoded 方式

探讨了表单以 post 方式, enctype 为 application/x-www-form-urlencoded 提交时数据所使用的字符集编码, 具体介绍了缺省情况以及设置了 accept-charset 属性时的情况, 同时介绍了后台在取出表单数据前如何使用 setCharacterEncoding 来设置正确的解码.

在上一篇章中谈论了表单以 get 提交时的编码与乱码问题, 这一章中将讨论以 post 方式提交时的编码与乱码问题.

在前面也同时提到, 表单有一个叫 enctype 的属性, 它有两个值, application/x-www-form-urlencodedmultipart/form-data.

这一属性实际只对 post 方式起作用, 因为 get 方式实际只支持前一种类型, 也就是 application/x-www-form-urlencoded, 这是缺省的类型.

在使用 post 方式提交时, 缺省的编码类型也依然是这个 application/x-www-form-urlencoded. 在这一篇章中, 先讨论这一类型;在下篇中, 再讨论 multipart/form-data 类型.

继续阅读

表单(form) get 方式提交时的字符集编码与乱码

探讨了表单以 get 方式提交时数据所使用的字符集编码, 具体介绍了缺省情况, 此时使用文档本身的编码;以及设置了 accept-charset 属性时的情况.

在前面说完了 URL 中的编码与乱码( , ), 也为本章节谈论的主题, 关于表单(form)以 get 方式提交时的编码与乱码问题打下了一个良好的基础.

事实上, 表单以 get 方式提交就是把表单中的数据拼凑在 url 中提交到后台, 也因此与 url 中的编码有着非常紧密的关系, 可以说这两种方式是极为类似的.

继续阅读

URL 中的字符集编码与乱码(下)--查询字符串中的字符集编码

深入介绍了 URL 中的转义编码, 用具体例子讲解了不同页面编码的情况下, 查询字符串转义时所使用的编码, 还顺带对 url 的组成结构作了介绍.

在上篇中, 初步谈论了 URL 中含有中文字符时的转义编码, 提到了所使用的编码是 utf-8.

不过你可能会有点疑问, 一定都是要用 utf-8 编码吗? 还是因为页面编码本身是 utf-8 的缘故呢? 毕竟在那个例子中, 页面的编码也恰好是 utf-8.

在 GBK 编码页面下的 URL 转义

这次, 将继续测试页面编码是 gbk 时的情况, 如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>带中文的 URL(GBK)</title>
</head>
<body>
	测试带中文的 URL,页面编码为:GBK
	<br> 中文链接:
	<a href="你好/index.html">你好/index.html</a>
	<br> 中文链接并带有中文查询字符串:
	<a href="你好/index.html?s=你好">你好/index.html?s=你好</a>
</body>
</html>

继续阅读

URL 中的字符集编码与乱码(上)--路径中的字符集编码

深入介绍了 URL 中的转义编码, 用具体例子讲解了中文 URL 中的转义情况, 以及 tomcat Connector 中的 URIEncoding 设置.

在之前说完了静态 html 页面的中的编码(, , , , ), 接着又谈论了动态 html 页面中的编码问题, 具体以 java 平台为例, 谈论了 , servlet 中的编码问题 以及 jsp 中的编码与乱码问题.

虽然没有涉及更多的语言平台, 比如 php, asp, 乃至 nodejs, python, ruby 等, 但背后的原理基本也是相通的.

这一次将转入一个新的话题, 就是 URL 中的编码与乱码问题.

带有中文的 URL

我们依然从一些简单的实验开始去探讨, 而不是直接给出一些结论. 先创建两个有着中文文件名的 html, 页面编码分别是 utf-8 和 gbk;以及一个中文名的文件夹, 下面再放一个普通的 html 文件, 如下所示:

中文 url 文件名 路径名

自然, 你可能听说过很多前辈们的警告: 千万别用中文作文件名或路径名(文件夹名). 这种警告应该说是中肯的, 但也不意味着用了中文就一定有问题.

前面三个文件的内容如下:

继续阅读

有一句话是这么说的:不要跟我比懒,我懒得跟你比……

拖延症有时候想想也是挺类似的。作为一名拖延症的患者,虽然我们都意识到了拖延症的不好,也同意应该要尽早纠正这样的状态,但与此同时内心却依然有一个声音:等一等再纠正吧……

至于你说为什么?很简单,因为是拖延症患者嘛!如果一个人能立马就纠正他的状态,那他就不是拖延症患者了,对吧?

你可能会说,来来来,给你几个克服拖延症的建议,1,2,3,4……拖延症患者会想:嗯,建议不错,我等一等再试试看吧……

有个冷笑话是这么说的:几个月前,在书店看了一本关于战胜拖延症的书,觉得挺好的就买下了,到现在还没怎么看......

所以你看,关键并不在于建议。生活上有很多事情也是类似的。比如说一个穷人他需要时间去提升自己,可穷人往往也缺乏时间;一个觉悟不高的人他需要提高自己的觉悟,可是正因为他觉悟不高,所以他觉悟不到自己觉悟不高……

你觉得呢?