13694383093该用户等级名称名称

百度贴吧用户名该怎么写,为什么说格式不对_百度知道posts - 1,&
comments - 17,&
trackbacks - 0
版权声明:如有转载请求,请注明出处:& 杨争&&&
一、问题:
&&&&&&& 编码问题是JAVA初学者在web开发过程中经常会遇到问题,网上也有大量相关的文章介绍,但其中很多文章并没有对URL中使用了中文等非ASCII的字 符造成服务器后台程序解析出现乱码的问题作出准确的解释和说明。本文将详细介绍由于在URL中使用了中文等非ASCII的字符造成乱码的问题。
1、在URL中中文字符通常出现在以下两个地方:
(1)、Query String中的参数值,比如=中国
(2)、servlet path,比如:中国.html
2、出现乱码问题的原因主要是以下几方面:
(1)、浏览器:我们的客户端(浏览器)本身并没有遵循URI编码的规范()。
(2)、Servlet服务器:Servlet服务器的没有正确配置。
(3)、开发人员并不了解Servlet的规范和API的含义。
二、基础知识:
1、一个http请求经过的几个环节:
浏览器(ie firefox)【get/post】------------&Servlet服务器-------------------------------&浏览器显示
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 编码&&&&&&&&&&&&&&&& 解码成unicode,然后将显示的内容编码&&&&&&& 解码
(1) 浏览器把URL(以及post提交的内容)经过编码后发送给服务器。
(2) 这里的Servlet服务器实际上指的是由Servlet服务器提供的servlet实现ServletRequestWrapper,不同应用服务器的 servlet实现不同,这些servlet的实现把这些内容解码转换为unicode,处理完毕后,然后再把结果(即网页)编码返回给浏览器。
(3) 浏览器按照指定的编码显示该网页。
&&&&&&& 当对字符串进行编码和解码的时候都涉及到字符集,通常使用的字符集为ISO8859-1、GBK、UTF-8、UNICODE。
2、URL的组成:
域名:端口/contextPath/servletPath/pathInfo?queryString
1、ContextPath是在Servlet服务器的配置文件中指定的。
对于weblogic:
contextPath是在应用的weblogic.xml中配置。
&&context-root&/&/context-root&
对于tomcat:
contextPath是在server.xml中配置。
&Context path="/" docBase="D:/server/blog.war" debug="5" reloadable="true" crossContext="true"/&
对于jboos:
contextPath是在应用的jboss-web.xml中配置。
&jboss-web&
&&& &context-root&/&/context-root&
&/jboss-web&
2、ServletPath是在应用的web.xml中配置。
&servlet-mapping&
&&& &servlet-name&Example&/servlet-name&
&&& &url-pattern&/example/*&/url-pattern&
&/servlet-mapping&
2、Servlet API
我们使用以下servlet API获得URL的值及参数。
request.getParameter("name");&&&&&&&& // 获得queryString的参数值(来自于get和post),其值经过Servlet服务器URL Decode过的
request.getPathInfo();&&&&&&&&&&&&&&& // 注意:pathinfo返回的字符串是经过Servlet服务器URL Decode过的。
requestURI = request.getRequestURI(); // 内容为:contextPath/servletPath/pathinfo 浏览器提交过来的原始数据,未被Servlet服务器URL Decode过。
3、开发人员必须清楚的servlet规范:
(1) HttpServletRequest.setCharacterEncoding()方法 仅仅只适用于设置post提交的request body的编码而不是设置get方法提交的queryString的编码。该方法告诉应用服务器应该采用什么编码解析post传过来的内容。很多文章并没 有说明这一点。
(2) HttpServletRequest.getPathInfo()返回的结果是由Servlet服务器解码(decode)过的。
(3) HttpServletRequest.getRequestURI()返回的字符串没有被Servlet服务器decoded过。
(4) POST提交的数据是作为request body的一部分。
(5) 网页的Http头中ContentType("text/ charset=GBK")的作用:
&& (a) 告诉浏览器网页中数据是什么编码;
&& (b) 表单提交时,通常浏览器会根据ContentType指定的charset对表单中的数据编码,然后发送给服务器的。
&& 这里需要注意的是:这里所说的ContentType是指http头的ContentType,而不是在网页中meta中的ContentType。
三、下面我们分别从浏览器和应用服务器来举例说明:
URL:中国?name=中国
汉字&& 编码&&&&& 二进制表示
中国&& UTF-8&&&& 0xe4 0xb8 0xad 0xe5 0x9b 0xbd[-28, -72, -83, -27, -101, -67]
中国&& GBK&&&&&& 0xd6 0xd0 0xb9 0xfa[-42, -48, -71, -6]
中国&& ISOx3f,0x3f[63, 63]信息失去
(一)、浏览器
1、GET方式提交,浏览器会对URL进行URL encode,然后发送给服务器。
(1) 对于中文IE,如果在高级选项中选中总以UTF-8发送(默认方式),则PathInfo是URL Encode是按照UTF-8编码,QueryString是按照GBK编码。
中国?name=中国
实际上提交是:
GET /example/%E4%B8%AD%E5%9B%BD?name=%D6%D0%B9%FA
(1) 对于中文IE,如果在高级选项中取消总以UTF-8发送,则PathInfo和QueryString是URL encode按照GBK编码。
实际上提交是:
GET /example/%D6%D0%B9%FA?name=%D6%D0%B9%FA
(3) 对于中文firefox,则pathInfo和queryString都是URL encode按照GBK编码。
实际上提交是:
GET /example/%D6%D0%B9%FA?name=%D6%D0%B9%FA
很显然,不同的浏览器以及同一浏览器的不同设置,会影响最终URL中PathInfo的编码。对于中文的IE和FIREFOX都是采用GBK编码QueryString。
小结:解决方案:
1、URL中如果含有中文等非ASCII字符,则浏览器会对它们进行URLEncode。为了避免浏览器采用了我们不希望的编码,所以最好不要在URL中直接使用非ASCII字符,而采用URL Encode编码过的字符串%.
URL:中国?name=中国
2、我们建议URL中PathInfo和QueryString采用相同的编码,这样对服务器端处理的时候会更加简单。
2、还有一个问题,我发现很多程序员并不明白URL Encode是需要指定字符集的。不明白的人可以看看这篇文档:
2、 POST提交
&&&&&& &对于POST方式,表单中的参数值对是通过request body发送给服务器,此时浏览器会根据网页的ContentType("text/ charset=GBK")中指定的编码进行对表单中的数据进行编码,然后发给服务器。
在服务器端的程序中我们可以通过Request.setCharacterEncoding() 设置编码,然后通过request.getParameter获得正确的数据。
解决方案:
1、从最简单,所需代价最小来看,我们对URL以及网页中的编码使用统一的编码对我们来说是比较合适的。
如果不使用统一编码的话,我们就需要在程序中做一些编码转换的事情。这也是我们为什么看到有网络上大量的资料介绍如何对乱码进行处理,其中很多解决方案都只是一时的权宜之计,没有从根本上解决问题。
(二)、Servlet服务器
&&&&&&& Servlet服务器实现的Servlet遇到URL和POST提交的数据中含有%的字符串,它会按照指定的字符集解码。下面两个Servlet方法返回的结果都是经过解码的:
request.getParameter("name");
request.getPathInfo();
这里所说的"指定的字符集"是在应用服务器的配置文件中配置。
(1) tomcat服务器
对于tomcat服务器,该文件是server.xml
&Connector port="8080" protocol="HTTP/1.1"
&&&&&&&&&&&&&& maxThreads="150" connectionTimeout="20000"
&&&&&&&&&&&&&& redirectPort="8443" URIEncoding="GBK"/&
URIEncoding告诉服务器servlet解码URL时采用的编码。
&Connector port="8080" ... useBodyEncodingForURI="true" /&
useBodyEncodingForURI告诉服务器解码URL时候需要采用request body指定的编码。
(2) weblogic服务器
对于weblogic服务器,该文件是weblogic.xml
&input-charset&
& &java-charset-name&GBK&/java-charset-name&
&/input-charset&
(三)浏览器显示
&&&&&&& 浏览器根据http头中的ContentType("text/ charset=GBK"),指定的字符集来解码服务器发送过来的字节流。我们可以调用 HttpServletResponse.setContentType()设置http头的ContentType。
1、URL中的PathInfo和QueryString字符串的编码和解码是由浏览器和应用服务器的配置决定的,我们的程序不能设置,不要期望用request.setCharacterEncoding()方法能设置URL中参数值解码时的字符集。
所以我们建议URL中不要使用中文等非ASCII字符,如果含有非ASCII字符的话要使用URLEncode编码一下,比如:
正确的写法:
并且我们建议URL中不要在PathInfo和QueryString同时使用非ASCII字符,比如
中国?name=中国
原因很简单:不同浏览器对URL中PathInfo和QueryString编码时采用的字符集不同,但应用服务器对URL通常会采用相同的字符集来解码。
2、我们建议URL中的URL Encode编码的字符集和网页的contentType的字符集采用相同的字符集,这样程序的实现就很简单,不用做复杂的编码转换。
阅读(...) 评论() &c盘users的用户名称怎么修改啊_百度知道网站的名称必须是独一无二的,用户哪怕对你网站很熟悉
查看:746 | 回复:7
主题帖子积分
&&&&&&&&&&&&&&&&&&&&
& &“品牌”一词的作用是巨大的,这是很多人明白的道理,也是很多人一直不断追求的目标;因此对于一个网站推广来说是不言而喻的,不管是seo还是其他的营销方式,最重要的目的就是为了让别人记住你的网站,当自己的网站名称在百度指数搜索工具能查到时,那么说明你的网站有一定的搜索量了,能体现出一定的品牌价值。品牌价值的体现一定是我们想法设法的去打造的,但不论如何始终离不开这两点:站内和站外。
& && &&&一、站内体现网站的品牌
& && & 站内不能仅仅只为了seo而设置,比如很多网站连自己的品牌名称都没有,标题的设置就是奔着关键词排名而来的,一眼就可以识别,如:网站建设|网站制作|网站设计-西安网站建设公司,这样的标题就根本没办法体现网站的品牌。
& && & 那么网站如何去打造网站的品牌呢?
& && & 1、网站的名称
& && &&&网站的名称必须是独一无二的,用户哪怕对你网站很熟悉,也并不能轻易通过品牌词来寻找到你的网站,名称最好是简单、大众化且字数不宜过长,方便记忆为好。
& && & 2、网站的域名
& && & 网站域名应该结合网站名称去注册,虽然现在很多知名网站都没有做到这点,但是从域名的天价收购就能看出,域名与品牌的重要性,我们必须从小的细节去做起,方便用户记忆的域名才能体现域名的价值。
& && & 3、网站title的设置
& && & 网站title一定要体现出网站的品牌,为了方便用户记忆,我们可以将网站名称放置在最前面,用户第一次输入某个关键词进入网站,可能没记住网站名称,第二次可能有点印象,第三次可能就直接搜索网站名称找网站了。
& && & 4、logo的设置
& && & 体现网站品牌的logo能够加深用户对网站名称的记忆,用户可能看一次就能够记住它,当然logo图片的alt也可以加上网站的名称。
& && & 5、产品或文章中体现
& && & 产品或文章中经常出现网站的名称,会起到让用户加深印象的效果,如西安青秦网站建设夏季送清凉,特惠价等,将网站品牌融入到产品中去,当用户购买一次产品可能就能够轻而易举的记住了;西安青秦网站建设站长建议一些产品图片可以添加水印,一旦被别人复制转发,那么可以很好的宣传自己网站,这也是一个不错的宣传、推广方式;
& && &&&二、站外结合网站品牌去推广
& && &&&除了做好了站内的布局外,别人也未必知道你的网站,这时候就要到外边去推广自己的网站,主要可以分为以下几种形式:
& && & 1、问答形式推广
& && & 这种方法是一种比较常见也是比较有效果的方法,如百度知道、soso问问、天涯问答等,利用问答形式去推广网站,只要做的不太明显,在用户眼里信任度还是很高的。
& && & 2、图片形式推广
& && & 图片的推广就是要抓住用户的这种心理,把一些比较精美、或比较有特色的图片加上网站名,让别人知道有这么一个网站,很多朋友直接将网址添加上图片上,个人认为这种形式很难让用户记住,中国人对汉字比较敏感,可以将网站名称和网址同时展现在图片中。
& && & 3、软文形式推广
& && & 软文的威力想必大家都有所了解,现在软文常见的方式有:悬念式、新闻式、情感式、恐吓式、促销式、故事式,但不管是利用什么方式去写软文,目的只有一个,就是在文章中出现你的网站品牌名称,让别人记住你的网站。
& && & 4、其他形式推广
& && & 推广的方式五花八门,除了以上三种比较常见的还有一些利用QQ群宣传、友情链接、博客、论坛、sns推广等,当然有钱或者有人脉可以结合一些媒体,公交广告,电视广告等,这些效果肯定是比前面的都要好,毕竟“便宜没好货,好货不便宜”。
主题帖子积分
落伍者(两全齐美), 积分 3629, 距离下一级还需 1371 积分
落伍者(两全齐美), 积分 3629, 距离下一级还需 1371 积分
主题帖子积分
落伍者(两全齐美), 积分 3532, 距离下一级还需 1468 积分
落伍者(两全齐美), 积分 3532, 距离下一级还需 1468 积分
www.4sb.net|www.mcmqq.net|[url=]mc
主题帖子积分
论坛督察队
落伍者(七窍玲珑), 积分 153566, 距离下一级还需 46434 积分
落伍者(七窍玲珑), 积分 153566, 距离下一级还需 46434 积分
这个问题不一定
主题帖子积分
落伍者(四季发财), 积分 49740, 距离下一级还需 260 积分
落伍者(四季发财), 积分 49740, 距离下一级还需 260 积分
这个问题其实也不一定非这样吧
主题帖子积分
XXX好网站看签名
落伍者(两全齐美), 积分 3829, 距离下一级还需 1171 积分
落伍者(两全齐美), 积分 3829, 距离下一级还需 1171 积分
主题帖子积分
落伍者(一心一意), 积分 90, 距离下一级还需 910 积分
落伍者(一心一意), 积分 90, 距离下一级还需 910 积分
主题帖子积分
落伍者(四季发财), 积分 32801, 距离下一级还需 17199 积分
落伍者(四季发财), 积分 32801, 距离下一级还需 17199 积分
嗯& &确实的呀
|www.pingmin.cc|
论坛事务客服(8:30-17:00):
&&&&商务广告客服(8:30-21:00,限广告合作):
落伍者创建于,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(|)
浙ICP备号 BBS专项电子公告通信管[号
  落伍法律顾问: ITlaw-庄毅雄

我要回帖

更多关于 更改电脑用户名称 的文章

 

随机推荐