企业网站建设

建站知识

今日已发布信息: 137048
累计注册用户: 82461127

php开发多语言网站一点小知识

使用的语言 简体中文 可以设置 国家地区

概述: 浏览器会在请求头中添加一个特殊的请求头 Accept-Language 来说明浏览器端设置的语言类型,如果你刚才注意的话,会发现我们可以设置多个语言,而且可以调整顺序,在 Accept-Language 头中,它们按着你设置的顺序依次出现。每种语言使用逗号 (,) 进行分隔。各种浏览器的 Accept-Language 如下所示。

网站如何知道浏览器的用户在使用什么语言?

 我们会看到很多支持多语言的网站,有些早期的网站在首页会有一个链接,让用户自己来选希望看到中文,还是英文,现在的网站则不需要了,这些网站可以根据用户使用的语言来显示不同语言的版本。比如,你在使用简体中文,打开网页,会看到一个简体中文的网页,你在使用英文,输入同一个地址,就会看到一个英文的页面。

服务器是如何知道用户希望看到何种语言版本的页面呢?

浏览器端

 对于网站来说,一个网站要服务海量的用户,使用服务器来记住用户的语言是很麻烦的,这个工作还是从浏览器开始,如果浏览器自己告诉服务器希望使用的语言,服务器不就简单了吗?

各种浏览器都可以设置希望使用的语言,在 IE 中,选择设置,弹出对话框之后,可以设置语言首选项。

点击语言,弹出语言首选项对话框。

在控制面板中进行设置。

对于 Chrome 来说,在高级设置中。

点击语言和输入设置。

当浏览器向服务器发出请求的时候,浏览器会在请求头中添加一个特殊的请求头 Accept-Language 来说明浏览器端设置的语言类型,如果你刚才注意的话,会发现我们可以设置多个语言,而且可以调整顺序,在 Accept-Language 头中,它们按着你设置的顺序依次出现。每种语言使用逗号 (,) 进行分隔。

各种浏览器的 Accept-Language 如下所示。

IE 的语言

Accept-Language en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3

Chrome 的语言

 

  沅江建网站  MT4平台出租   今日推荐免费建站   分类信息   奎屯网站建设公司

 

Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4

FireFox 的语言

Accept-Language: en-us,zh-cn;q=0.8,en;q=0.5,zh;q=0.3

慢着,q 又是什么呢?在 HTTP 协议中有一个详细的说明,点击这里的链接可以查看详细说明: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html。简单来说,语言可以携带一个“q”值,来表示用户对该语言的喜好程度,这个值在 0 - 1 之间,默认为 1。

 服务器端

在我们服务器端代码中,可以直接获取到浏览器在请求中携带的语言设置,在 .NET 中,HttpRequest 表示浏览器发出的请求,属性 UserLanguages 就表示 Accept-Language 中传递的语言,已经根据优先级进行了排序,而且已经根据逗号 (,) 进行了拆分。这个属性是一个字符串数组。

代码中

string[] languages = Request.UserLanguages;

比如,我们希望取出第一个语言,就可以通过 Request.UserLanguages[0] 来获取到了。

获取的语言从程序的角度来说仅仅是一个表示语言的字符串,从面向对象的角度来说,我们需要一个对象来表示语言,这个类就是 CurtureInfo 类,它定义在命名空间 System.Globalization 中。可以通过 MSDN 来查看它的定义。

通常,我们将表示语言的字符串通过构造函数传递给 CultureInfo。

CultureInfo info = new CultureInfo(culture);

 

中文问题

如果你刚才仔细查看的话,会发现 IE 发送的语言代码与 Chrome 是不一样的。你会发现表示简体中文实际上有四种写法:

zh

zh-cn

zh-Hans

zh-Hans-CN

 这些写法是从哪里来的呢,在 MSDN 中有详细的说明

CultureInfo    类将根据 RFC 4646 为每个区域性指定一个唯一的名称。  名称是语言关联的 ISO 639 小写双字母区域性代码和国家/地区关联的 ISO 3166 大写双字母子区域性代码的组合。

比如 zh 就表示中文,Han: 汉字 ,S: Simplified 简体字,T: Tranditional 繁体字,而 cn 表示中国地区代码。

区域性名称的格式为 两个小写字符的语言代码>-两个大写字符的国家地区码。 例如 “zh-CN” 代表“中文(简体中文)”,“en-US”代表“英语(美国)”。 在双字母语言代码不可用的情况中,将使用从 ISO 639-2 派生的三字母代码。

请注意,某些区域性名称还指定 ISO 15924 书写符号。 例如,中文有简体和繁体之分,这种名称可以使用 两字符的语言码-书写标记-两字符的国家地区码形式。 例如“zh-Hans-CN”代表“简体中文(中国)”。 对于 Windows Vista 之前的操作系统,包含书写符号的区域性名称使用languagecode2-country/regioncode2-scripttag 的模式,例如“uz-UZ-Cyrl”代表“乌兹别克语(乌兹别克斯坦,西里尔语)”。

非特定区域性只能由双字母小写语言代码指定。 例如,fr指定“法语”的非特定区域性,de指定“德语”的非特定区域性。

那么,zh 就表示非特定区域的中文,en 就表示非特定区域的英文。

但是,需要注意的是,CultureInfo 不支持 zh-Hans-CN 写法,如果你使用了,会收到这样一个异常。

zh-Hans-CN 是无效的区域性标识符。

你可以使用 zh,  zh-cn, zh-Hans, 但是,不能使用 zh-Hans-CN 来构建 CultureInfo 对象。

查看不同浏览器解释结果:

    IE:

    谷歌:

    360:

 

网站优化的挑战不在于排名 在于变化

  一个新站上线之后我们需要做的推广有很多,随着时间累积,效果出来之后,我们的SEO之路算不算告一段落呢?

  答案显然是否定的。SEO的挑战不在于排名,而在于变化。随着网民的变化,互联网也在变化,搜索引擎更是在变化。所以正确地应对变化就是合格的SEOER应该具备的素质,俗话说江山易攻难守就是这个道理。下边从几个方面具体来说下SEO人员的挑战。

  第一、搜索引擎不断调整算法:Google之前有个著名的现象叫做Google Dance,指的是每更新一次排名需要一个月左右的时间,当全部索引之后,就会有一批网站的排名出现大幅度下滑,而且这个现象一直持续了很久,不过现在已经不会出现这种算法了,但Google每天更新可达数百次,排名也常常变动。百度也是如此,每月每周都会有更新。所以,SEO的真正挑战在于维持排名。

  第二、竞争对手也在变化:SEO适合于大部分行业,所以,你在努力的时候,你的竞争对手也在努力。他们不断在研究着你的网站,不断试验网站数据,不断提高用户体验,有句话就是“永远不要低估了竞争对手求胜的信念”。所以,不要以后你的网站排名上来了就安全了,相反,这个正是真正挑战的开始,因为很多人将你视为第一竞争目标。

  第三、用户搜索习惯在变化:用户的搜索习惯不断地发生变化,整体表现为搜索更长的词或者句子,所以,你面临的是如何把这些用户有效的引导到你的网站,虽然你有很好的排名,但是有很多散客户并不是按照你的目标关键词进行搜索。他们有自己的思维,有自己的搜索习惯,所以,开发更多地流量比保持一个单一的关键词显然更有意义。

  第四、行业在变化:有些行业使用Google趋势或者百度指数可以明显地看出处于下降趋势,而有些明显地处于上升趋势。所以,在大形势背景下,能否对你的行业产生影响,对于你未来的发展是至关重要的。现在有很多网络公司,而网站设计,网站制作等词语基本是下降的趋势,所以,现在看似很不错的网站设计行业五年甚至十年之后谁也说不准朝那个方向发展。

  第五、网站的变化:每天有数不清的网站上线,也有数不清的网站关闭。所以,你的网站十有八九就会有死链接存在,无论对于主页或者是内容页,都会受到影响。 你必须保持勤奋,除了每天要查看的友情链接,还有就是404错误。这些东西都是不断变化的,谁也不能保证今天无死链接,而明天或者后天就还没有。

  好了,网站优化不是一朝一夕的事情,更不仅仅是关注排名这么简单,他所涉及的除了流量,转化率、品牌等因素之外,最重要的就是挑战变化,让自己的网站运营的十分稳定,不能因为搜索引擎更新了一次算法就把我们打垮,这才是SEO的精髓。

Baidu收录wordpress页面过少的缘由剖析

  本人之前发表过一篇文章,阐述wordpress收录页面过少的原因。我将wordpress 由博客主题换成CMS主题后,发现文章收录数量明显增加,并由此得出一个结论:百度不爱搜录具有博客特征的网页。由于当时考虑不周到,发表之后,受到个别网友批评指正。事实上,博客特征的网页容易产生重复内容,高度重复才是引起百度不收录wordpress的真正原因。经过深思熟虑,以及对蜘蛛访问日志的观察和分析,我对百度收录wordpress博客异常的原因得出新的结论。

  1.安装SEO插件后,百度不收录页面。

  很多采用wordpress建站的朋友都接触过All in One SEO这个插件。这个插件可以让新手一键搞定wordpress的站内优化。事实证明,这款插件对google优化非常的完美,但百度却总容易出现不收录的情况。我曾经一度怀疑百度会认为All in One SEO 插件存在优化过度的问题,从而导致网站降权,不收录。实际上,All in One SEO 的网页并没有被百度降权,导致百度不收录的罪魁祸首是它的noindex设置。

  noindex标签的作用是向搜索引擎申明该网页禁止被搜录和索引,谷歌蜘蛛爬行到这样标签的页面,会自动丢弃掉该页并继续爬行其他页面,从而减小文章重复度,利于站内目标文章页权重的集中。百度蜘蛛遇到noindex标签的页面后,同样会丢弃掉该页。与谷歌不同的是,百度蜘蛛一般不再爬行该页面包含的文章链接,直接返回上一级目录。由于包含在该页中的文章无法被百度蜘蛛爬行到,所以页目录之下的文章将不会被索引。

  解决办法:

  取消All in One SEO 中 noindex设置。

  2.wordpress模板导致的原因。

  wordpress之所以流行,与其强大的插件扩展能力和数量丰富的主题模板密不可分。我曾经说过,使用wordpress建站的人,百分之99%都直接采用现成的主题来建站。同样的模板必然导致网络中出现大量高度重复网站结构和内容。百度不喜欢重复的内容,这些重复内容当然也包含网站模板的HTML代码。

  SEOer通常会选择一些使用人数较少的模板来做SEO博客,同时还会对代码部分做一些更改,如ID部分名称,title 描述,CSS名称等等。这些操作的目的,是使得网页模板代码尽量避免与其他网站重复,从而更有利于文章的搜录。当博客正文内容字数越少时,模板重复对收录的影响就会变得越大。

  解决办法:

  1).增加文章字数。

  2).选择非热门wordpress主题。

  3).对现有主题进行修改。

  3.wordpress摘要设置不当造成站内文章重复。

  百度也好,谷歌也罢,没有哪一家搜索引擎喜欢重复的文章。当一篇文章出现在同一网站内多个不同的页面中,搜索引擎将花费更多的处理时间来判断哪一篇文章才是正文。当搜索引擎从程序上难以无法判断主次时,会降权收录文章第一次被索引的页面,或者直接K掉这些重复的页面。于是很多wordpress站长在百度里site自己的网址,然后惊讶的发现:出现在结果前面的,竟然全都是日历页,归档页或分类目录,而文章正文内容却被百度隐藏而作为补充内容而存在,甚至压根就不被索引。

  导致这样的原因是因为你在录入文章数据的时候,既没有采用more标签对文章进行截断,也没有手动添加摘要。wordpress默认情况下,会将more标签之前的内容作为摘要输出到首页,标签目录,分类目录,归档目录,日历目录下。如果没有用more标签进行截断,也没有手动输入摘要,那么文章正文会同时出现在首页,几个目录页,以及文章页中。由于首页比目录页权重高,目录页比文章页权重高,百度以为文章页权重最低,便优先舍弃掉了。google的真正从技术上实现了文章的筛选机制,能保文章页被正常的收录,而百度这方面的技术尚需进一步完善。

  解决办法:

  1).每个文章前一两段后添加more标签。

  2).手动添加文章摘要,不能与more标签之前相同。

  3).精简标签数量。

  4.URL设置不合理,不利于收录。

  在很多SEO教程里,都提出过目录不宜过深。受到这一思想影响,许多站长就将目录页,文章页都控制在二级目录以内,以为这样可以让网页更好的被收录。殊不知,这样的URL方式其实并不利于SEO。搜索引擎蜘蛛爬行算法不光包含URL深度,同时还包括URL的重复度。当蜘蛛需要爬行一个网站时,首先需要根据网站的权重算出索引的深度和重复数,当网站权重越高时,蜘蛛爬行的深度就越深,允许的重复数就越大。蜘蛛在索引某一网站的时候,当深度操过一定层次后就会终止爬行其子目录。在爬行某个层次链接的过程中,URL重复数度超过一定数量,就会结束对该层目录的爬行。

  如果你的站内除了根目录就是2级页面,文章数量少时还好,如果文章数量一多,便会加大搜索引擎引擎服务器的负荷,从而引起蜘蛛反感。

  解决办法:

  一般而言,搜索引擎对于新站爬行层次都在三层左右。最佳的目录设置方案应当是目录/时段/正文。虽然这样的分类方式在建站初期收录处在劣势,但对网站(尤其是对靠长尾关键词取胜的站点)的长期发展百利而无一害。我个人认为,这种目录结构是对搜索引擎最友好的,最容易被收录的结构。

美丽说的成功模式是否复制

  如今美丽说和蘑菇街成了国内社区分享类网站的典范,美丽说成功了,但美丽说的本质还是淘宝客,淘宝客网站生存艰难,于是很多淘宝客仿佛看到了新的曙光,美丽说的成功能够复制吗?就网站运营模式来说,美丽说和蘑菇街是一样的,两者都是把“分享”做到了极致,不过都要依赖于淘宝网。一旦淘宝网封闭API所以淘宝客网站都要面临世界末日,当然美丽说也不例外。

  

 

  图一:美丽说这个关键词的指数高达70369

  笔者可以肯定的是在美丽说没有崛起之前,这个关键词是没人会搜索的,为何现在每天的百度指数能够达到7万多,美丽说不是一个传说,更不是什么神话。靠的是正确的推广方式,还是强大的财力,没有钱肯定是“炒”不起来的,美丽说这个关键词已经成为一种品牌,有了品牌,基本上可以不用从搜索引擎那获得流量了,上面已然提到美丽说把分享做到了极致,其实就是利用QQ空间和微博等推广方式实现的。

  

 

  图二:美丽说官方QQ空间,注意看粉丝数和微博听众

  2006.8万的空间粉丝和500.2万的微博听众,这两个数字是很恐怖的,当然这里面肯定也有水分,不过可以看出美丽说的QQ空间推广和微博推广做的非常好,全国有几亿QQ用户,自然QQ空间就差不多也是几亿,而美丽说的目标群众是广大的年轻女性,例如:上班族,这些人平时必做的事情就是看自己的QQ空间,蘑菇街的模式也是一样的,两者把QQ空间利用到了极致,可以说每天从QQ空间来的流量就很惊人。总而言之,美丽说的流量不依赖百度,主要来源于QQ空间分享和微博分享。

  第二:美丽说的模式能否复制

  对于网站运营来说,运营模式可以复制,这样的例子实在太多了,比如:28推和推18、美丽说和蘑菇街等等,但一味的复制也是不行的,最近看到一个类似美丽说的网站,个人适不适合模仿美丽说,如果我想做一个像美丽说那样的网站,然后利用QQ空间和微博推广自己的网站,能否成功?笔者认为个人站长不适合去模仿美丽说的运营模式,原因有两点:

  其一,个人站长能否真正摆脱百度,虽然我们也会说网站的推广的方式有很多,不要把所有宝都压在搜索引擎上,但是真正要去做的时候,你会发现摆在个人站长面前的问题很多,没有时间,没有资金,效果也不知如何,有很大一部分站长属于兼职类型的,除了上班还要打理自己的小站,最根本的原因就是没有资金,一个人的力量太渺小,QQ空间和微博推广需要很大的量,方能保证网站每天的流量。

  其二,美丽说是社会化电子商务分享的模式,说白了美丽说打击了很多淘宝客,但个人站长不可能去操作第二个美丽说,就目前来看,我们还得依赖于百度生活,用SEO的手段去获得有效的流量,这是个人站长们一直惯用的手段,不过未来的SEO是越来越难做了。这似乎意味着个人站长数量也会越来越少?个人站长很难去复制一个美丽说,但笔者相信未来的个人站长将会更专业,能够创造更多的美丽说,互联网优胜劣汰,适者生存,这也是自然法则,SEO之路越走越难,也是要求SEO从业人员更加专业化。

安全狗saas化的创新长处

随着互联网技术不断更新迭代发展,安全成为每个人都应该关注的问题之一。特别是在如今电子商务、银行、金融、政府网站等重点领域,安全更是重中之重。

网站也会时常遭受到网络攻击,不管是服务器还是网站程序,还是通过黑客手段直接窃取用户信息,由于常年管理着几台服务器,因此,服务器防护的需求也逐渐暴露出来了,而之前所介绍过的安全狗就是其中一个知名产品。

安全狗的功能想必也不用过多介绍,许多个人站长都使用过它的产品服务。从早期针对服务器完全到添加杀毒功能到网站安全监测扫描,每一项创新功能都给需求者带来极大的帮助,今天面对新形态,安全狗也发出了“软件定义防御 数据驱动安全”的新版本。

新版本主要体现在实现一体化防御、基于威胁分析驱动的数据能力、沉淀威胁情报能力、云安全SAAS化运营等等。

一、服务器、网站及业务一体化安全防御

大数据似乎成为了每一个人口中必不可少的词,而与其相关的云计算则成为了当下每一种技术或者更高效的的技术必须的支撑,安全狗此次的新版本便是在这样的技术需求下推出,构建成网络层、系统层、应用层一体化防御体系。

这些都能够帮助到用户进行黑客防御、端口恶意扫描、网络漏洞探测、各种漏洞攻击、抵挡病毒木马等攻击。

作为从事这个行业多年的人士,至今也认为在服务器上的防御是必不可少的,而有效的通过借助软件或者平台来解决则是更简单的,安全狗推出的一体化安全防御体系的确帮助到了许多人,特别是电商网站、金融信息、政府门户以及需保持稳定性的游戏等网站,提供了极大的帮助。

随着云计算技术的发展,相信未来针对此类功能也将不断完善,特别是在大数据挖掘与利用的基础上,安全狗也做创新,通过数据分析以及沉淀来判断情报价值。

二、威胁分析驱动与沉淀威胁情报能力优势

安全狗CEO陈奋说过,安全狗基于威胁分析驱动的模型,帮用户找出已知和未知的威胁、潜在的风险以及攻击者的意图,获得能够掌控全局安全态势的能力。

一个平台也好一个产品也好,最重要的还是数据以及针对数据的利用。举个例子,卢松松博客作为一个能够清晰分析出来精准用户群以及大致需求,通过这部分数据可以进行广告营销以及内容运营。

安全狗通过将服务器威胁数据与情报进行收集再利用,通过特定的模块推送给用户,在这个平台上有不同的网站以及网站类型,各个产品服务都是基于不同的场景服务于用户的,而这种通过用户创造数据又用于用户的模式,成为了安全狗的核心优势。

这就好比一个网站做的内容和提供的服务是相一致的,通过分析相互的需求从而提供对应的策略,对于服务器而已攻击者的意图是什么,那么安全狗就可以提醒用户针对某方面的技术进行排查与加固。

三、云安全生态更需要SAAS的参与建设

阿里巴巴建立了现代商业文明,形成了一个基于互联网的商品交易生态圈,对于云安全而已也急需这样的一个生态圈。

目前在大数据以及云计算领域,安全狗已经与阿里云、腾讯云、UCloud、华为云、金山云、青云、京东云、亚马逊AWS等云计算平台建立合作伙伴关系,基本上形成了一个生态圈雏形。

服务器攻击千奇百怪无处不在,云安全若能够实现SAAS生态化建设,将对网络安全而已有着巨大的进步,而目前国内小众化服务需求也在不断发生,通过整合行业的力量为行业发展做出贡献,对于大部分用户而已受益是巨大的,这种模式也是行业发展趋势所在。

举个例子,淘宝平台丰富的商品由卖家提供,而要想获得更多的销售业绩就需要第三方服务商帮助做产品图片文案以及营销推广等,当平台产品越来越多,用户也就越来越多,最终实现共同价值。

总结:

安全狗通过SAAS的方式结合大数据云计算等技术在云安全领域的创新,的确让人眼前一亮,因为这些技术不仅仅是当前最领先的,也是最切实服务到每一个用户最需求的。

云安全依旧是一个比较大的话题,或者随着行业的不断技术迭代,又会面临新的挑战,而安全狗这样的技术企业却走在了大众发展的开头,帮助电子商务网站、金融信息、银行证券、政府网站等用户保驾护航。

安全狗服云平台通过SAAS化的运营方式,从另外一个角度来看,更是举全国领先技术公司的研发成果为行业不断发展提供源源不断的实验与探索。

Struts和Hibernate的完美联合

  在最近的课程设计中,要求我们使用Struts框架和HIbernate框架结合来完成一个学生选课系统。很多同学因没有学懂这两个框架而有所抱怨,抱怨到为什么不使用MVC模式,因为他们已经对MVC了如指掌。

  因此我就不得不说JSO网站开发中存在的两种模式了。

  Mode1

  简单的说,Mode1模式也分为两种情况,一种是完全使用JSP来开发,而另一种则是使用JSP+JavaBean来开发。这两种方案的唯一优点就在于,适合于小型的网站开发中,例如一个简单的个人主页,使用Mode1模式是你的首选方案。

  当然如果你的项目足够小,使用纯JSP来开发,让你的维护也会更加简单。因为它免去了修改JavaBean之后,还需要重新编译为".class"文件的麻烦。

  而Mode1的缺点也是不可忽视的,开发过程中,将大量的逻辑处理代码放在了JSP和JavaBean中,这导致了JavaBean复杂度增加,关联程度 提高(也叫耦合度),我们在完美开发中追求的是"高内聚低耦合",所以在大型的项目开发中,我们还是会把Mode1模式丢在一旁的。

  

 

  Mode1示意图

  Mode2

  Mode2中是以servlet为主体的,通过servlet接受客户请求,调用不同的JavaBean处理,将结果返回到JSP页面中,如此分工明确, 效率提高,而且方便项目维护,是大型网站建设的首选。在Mode2中,有一个叫做MVC的设计模式。它设计模式分为模型层,显示层,控制层。

  

 

  MVC设计模式

  这样理解MVC和Struts

  如果你难以理解MVC和Struts到底有何关联,那么你可以这样认为:MVC是一个定义的标准interface(接口),而Struts只是完美的实现了MVC接口而已。除了Struts,EJB也是一个MVC的实现。

  Struts和Hibernate的结合

  现在不难理解,在整个"学生选课系统"设计过程中,Struts是用来获取表单数据的,Hibernate是用来持久化对象到数据库的。基本的设计流程为:

  一:界面设计,首先你需要将前台的页面构造完美,给使用者留下一个好的印象。

  

 

  这是我设计的前台登陆界面

  二:考虑持久层:就那当前的项目来说,"学生选课系统"当以学生为主,每位学生是可以选择多门学科的,所以存在了一对多的关系,在Hibernate中使 用标签进行关系的映射。通过导出映射关系到数据库中。就可以将对象关系持久化到数据库中了。

  三:Struts过程:通过Struts来获得表单数据,再通过调用Hibernate的HQL语句进行数据的验证,是登陆验证的关键所在。等整个系统修 改完毕,我会将具体代码贴出供大家参考。而对于前台数据的验证,我没有使用Javascript和是使用了Struts的Validaate验证框架,如 果你不懂这个,你可以参照<>。

  关于Hibernate和Mysql编码问题

  编码问题是最让人抓狂的问题,使用Hibernate存入中文字符,而数据库确实一堆的"???"让人很是恼火。我们需要做的就是编码的统一。而 “UTF-8”的编码优势我就不说了,它完全可以支持中午编码显示,所以我们在构造数据库过程中,最后手动为其设置模式编码方式,CREATE DATABASE test DEFAULT CHARSET=UTF8。

  之后需要修改的就是Hibernate的编码方式了。方案一:

  在“hibernate.cfg.xml”文件中,应该如此写“URL”的配置:

  Xml 代码

<property name="connection.url">jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8</property>

  方案二:

  1, mysql安装时设置字符集utf-8(包括数据库字符集,以及表的字符集), jdbc驱动用最新的。

  2.hibernate配置文件(hibernate.cfg.xml)中,加上属性

  Xml 代码

<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF-8</property>

  3. web.xml设置Filter

  Xml 代码

<filter>
<filter-name>
Set Web Application Character Encoding
</filter-name>
<filter-class>com.util.SetEncodeFilter</filter-class>
<init-param>
<param-name>defaultencoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
 
<filter-mapping>
 
<filter-name>
 
Set Web Application Character Encoding
 
</filter-name>
 
<url-pattern>/*</url-pattern>
 
</filter-mapping>

http://yuanjiang.kvov.com.cn/jzxx35197.html