整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          網(wǎng)頁亂碼,上網(wǎng)必備常識(shí)

          網(wǎng)頁亂碼,上網(wǎng)必備常識(shí)

          頁亂碼,就是指平時(shí)我們打開一個(gè)網(wǎng)頁它的內(nèi)容看起來奇奇怪怪,不是正常的中文形態(tài),那會(huì)不會(huì)是一種特殊的非中文系語言呢?有可能,但是可以分辨!

          正常的非中文系語言

          中文亂碼

          那么為什么會(huì)發(fā)生亂碼呢?首先,需要明確以下幾點(diǎn):

          1,亂碼不是由于你的設(shè)備原因?qū)е?/p>

          2,不只有中文會(huì)產(chǎn)生亂碼,其它語言也會(huì)有亂碼

          3,亂碼的根本原因是因?yàn)榛ヂ?lián)網(wǎng)的原因

          互聯(lián)網(wǎng)方便的把全地球的人們連接在一起,于是網(wǎng)絡(luò)上的內(nèi)容可以是任意一種語言產(chǎn)生的,然后當(dāng)它傳播到另外一種語言使用者(比如中文)面前的時(shí)候,因?yàn)樗麄兯幍幕ヂ?lián)網(wǎng)環(huán)境不同,而計(jì)算機(jī)又不足夠智能的分辨應(yīng)該以什么樣的語言形式展示內(nèi)容的時(shí)候就發(fā)生了頁面亂碼。

          那么網(wǎng)頁亂碼怎么解決呢?同樣的,還是需要明確下面幾點(diǎn):

          1,遇到網(wǎng)頁亂碼不要慌,你的設(shè)備沒有問題

          2,網(wǎng)頁亂碼問題絕對(duì)不需要內(nèi)容閱讀者即用戶自己解決

          3,如果你好奇想自己解決,那么只需要通過搜索引擎搜索關(guān)鍵字:“ie/360/chrome 網(wǎng)頁編碼設(shè)置”,根據(jù)出來的內(nèi)容隨便找一篇照著點(diǎn)幾次鼠標(biāo)就可以了!

          這篇常識(shí)的目的是告訴你,互聯(lián)網(wǎng)后來是如何解決網(wǎng)頁亂碼的,也就是前面提到的,網(wǎng)頁亂碼不需要用戶自己解決。

          隨著互聯(lián)網(wǎng)越來普及,亂碼的問題起初非常的容易發(fā)生,當(dāng)然了,發(fā)生的原因也很簡(jiǎn)單,內(nèi)容所處的語言環(huán)境不同,計(jì)算機(jī)不知道該怎么顯示了。

          于是各個(gè)國家的網(wǎng)絡(luò)權(quán)威機(jī)構(gòu)就一起組織了一個(gè)聯(lián)盟,專門用來解決網(wǎng)絡(luò)上內(nèi)容亂碼的問題,并且給這個(gè)聯(lián)盟起了一個(gè)名字叫:Unicode

          組織建好之后該是商量具體的解決方案了!因?yàn)樵谶@之前,每個(gè)國家都有自己的語言在計(jì)算機(jī)中的表示形式(實(shí)際就是一張表格),而且隨著各國語言的變遷,這張表格還會(huì)時(shí)不時(shí)升級(jí)一下。

          那怎么辦呢?最后,Unicode 組織確定了一種非常便捷的解決方法。就是讓各個(gè)國家把自己語言在計(jì)算機(jī)中的表示形式表格,都提交給 Unicode 組織,由 Unicode 組織統(tǒng)一管理,然后把它們都合并到一起形成一張非常大的表格,再交給計(jì)算機(jī)廠商,在它們出廠計(jì)算機(jī)的時(shí)候默認(rèn)的把這張巨大的表格都存放到計(jì)算機(jī)中,這樣每臺(tái)計(jì)算機(jī)就相當(dāng)于擁有全世界各種語言的表示形式。

          這樣當(dāng)一種語言的內(nèi)容傳播到另外一種語言使用者面前的時(shí)候,計(jì)算機(jī)就能夠以某種機(jī)制監(jiān)測(cè)到使用者的語種,然后使用對(duì)應(yīng)的表示形式來顯示內(nèi)容,這樣就不會(huì)發(fā)生亂碼了。

          但是正如我們想象的,這張表格非常的龐大,放到用戶的計(jì)算機(jī)里的時(shí)候也是要占用一定的空間呢,所以 Unicode 組織就想辦法怎么樣盡可能的既能讓這張表格表示盡可能多的語言,又能盡可能的小。

          于是就出現(xiàn)了“編碼”這個(gè)概念!編碼的本質(zhì)就是說針對(duì)不同的語言,使用的存儲(chǔ)空間不一樣!比如,漢字和英文字母的占用空間就完全不同,這樣就了各種形式的編碼方案,網(wǎng)絡(luò)上被人們熟知的編碼方案包括:ASCII,UTF8,GBK,GB2312等,目前國際上最通用的編碼方案是UTF8。

          現(xiàn)在想必大家都知道亂碼的原因了,那么你知道為什么現(xiàn)在我們很少遇到網(wǎng)頁亂碼了嗎?

          哈,沒錯(cuò),因?yàn)槲覀兊碾娔X都升級(jí)換代了呀 ^_^

          最后,大家現(xiàn)在還有遇到網(wǎng)頁亂碼嗎?留言互動(dòng)吧 ^_^

          文亂碼問題是比較常見和煩人的問題,本文通過一個(gè)小程序介紹了如何通過Servlet從上一個(gè)頁面獲取參數(shù),

          方法很簡(jiǎn)單:調(diào)用request.getParameter(String s)方法。

          解決中文亂碼問題的方法是:

          首先要設(shè)置response響應(yīng)的格式:response.setContextType("text/html;charSet=GBK");

          然后在加上request.setCharacterEncoding("GBK")

          需要注意的是這是解決post方式提交的內(nèi)容的中文亂碼問題。

          解決get方式提交內(nèi)容的中文亂碼問題的方法:

          在Tomcat->conf文件夾->server.xml-->connecter標(biāo)簽里加上:

          URIEncoding="GBK"(注意:在xml里面“=”兩邊不要有空格)

          關(guān)于Post和Get之間的區(qū)別可以看我轉(zhuǎn)載的另一篇博文:

          HTTP POST GET 本質(zhì)區(qū)別詳解

          例子:

          1.threeparams.html


          1. <html>
          2. <body>
          3. <form method="post" action="Threeparams">
          4. <table>
          5. <tr>
          6. <td>
          7. param1
          8. </td>
          9. <td>
          10. <input name="p1" type="text"/>
          11. </td>
          12. </tr>
          13. <tr>
          14. <td>
          15. param2
          16. </td>
          17. <td><input name="p2" type="text"/>
          18. </td>
          19. </tr>
          20. <tr>
          21. <td>
          22. param3
          23. </td>
          24. <td><input name="p3" type="text"/>
          25. </td>
          26. </tr>
          27. <td><input type="submit" value="submit">
          28. </td>
          29. </tr>
          30. </table>
          31. </form>
          32. </body>
          33. </html>

          2.ThreeParams.java


          1. import java.io.*;
          2. import javax.servlet.ServletException;
          3. import javax.servlet.http.*;
          4. public class ThreeParams extends HttpServlet{
          5. @Override
          6. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
          7. throws ServletException, IOException {
          8. doPost(req,resp);
          9. }
          10. @Override
          11. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
          12. throws ServletException, IOException {
          13. resp.setContentType("text/html;charset=GBK");
          14. //解決post方式提交內(nèi)容的中文亂碼
          15. //一定要卸載存取第一個(gè)參數(shù)之前
          16. //不要調(diào)用resp.setCharacterEncoding("GBK");
          17. req.setCharacterEncoding("GBK");
          18. //解決get方式亂碼問題:修改server.xml中的connector標(biāo)簽-->URIEncoding="GBK"
          19. PrintWriter out=resp.getWriter();
          20. out.println(req.getParameter("p1"));
          21. out.println("</br>");
          22. out.println(req.getParameter("p2"));
          23. out.println("</br>");
          24. out.println(req.getParameter("p3"));
          25. out.println("</br>");
          26. }
          27. }

          補(bǔ)充:

          上面的這個(gè)例子.html中每個(gè)name都不一樣,如果有多個(gè)一樣的name時(shí),可以按如下的方法來獲取:

          1)Enumeration paramNames=request.getParameterNames()

          調(diào)用此方法獲得所有參數(shù)的名字,返回一個(gè)Enumeration

          2) while(paramNames.hasMoreElements()){

          String paramName=(String)paramNames.nextElement();

          String[] paramValues=request.getParameterValues(paramName);

          ...

          幾天有OMI的用戶反映,安裝OMI時(shí)有中文亂碼現(xiàn)象,我還說不可能。我們的程序在windows,linux都部署過無數(shù)次了,開發(fā)時(shí)都是UTF8編碼的,咋還會(huì)亂碼呢。結(jié)果看了半天也沒看出個(gè)啥,還是沒解決。

          最近新安裝程序時(shí),新下載了一個(gè)tomcat8.5的版本,一跑程序還真是html頁亂碼了,但JSP頁沒事。因?yàn)橹拔覀兊某绦蚨际桥茉趖omcat7,最高是tomcat8.0,沒試過更高的,高版本確實(shí)有問題,且控制臺(tái)中文也是亂碼。

          一、嘗試了一些網(wǎng)友給的辦法,下面說一下解決方案:

          1、tomcat\bin\catalina.bat 中添加,

          set JAVA_OPTS=-Xms512m -Xms1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8

          我的添加位置如圖

          ?前面是正好順便設(shè)置了JVM的內(nèi)存,解決問題的主要后面的部分。

          2、修改tomcat\conf\server.xml,加入 URIEncoding="UTF-8"

          加入如圖位置

          ?好象是第一步就可以了,保險(xiǎn)起見第二步也加上吧 。

          二、關(guān)于控制臺(tái)亂碼解決辦法:

          修改tomcat\conf\logging.properties

          #java.util.logging.ConsoleHandler.encoding=UTF-8(GBK)

          將UTF-8改為GBK,或者把整行注掉

          我是把相關(guān)編碼全注了

          以上,如未解決問題可以加QQ群交流,群名:Kettle實(shí)戰(zhàn)。


          主站蜘蛛池模板: 亚洲国产AV一区二区三区四区 | 精品女同一区二区三区免费播放| 一区二区三区国模大胆| 天美传媒一区二区三区| 天海翼一区二区三区高清视频| 男人的天堂精品国产一区| 亚洲一区二区三区乱码A| 久久毛片免费看一区二区三区| 国产一区二区三区免费观在线| 久久久久成人精品一区二区| 蜜桃无码一区二区三区| 国产成人精品一区二三区熟女| 无码AV动漫精品一区二区免费| 国产自产V一区二区三区C| 99久久精品午夜一区二区| 日美欧韩一区二去三区| 国产成人无码一区二区三区在线 | 无码一区二区三区免费视频| 一区免费在线观看| 亚洲综合无码一区二区| 国产一区二区视频免费| 久久精品一区二区免费看| 国内精品视频一区二区三区八戒| 男人免费视频一区二区在线观看| 国产精品特级毛片一区二区三区| 波多野结衣一区二区| 久久99精品免费一区二区| 韩国一区二区视频| 韩国福利一区二区三区高清视频 | 精品国产免费一区二区三区香蕉| 精品国产一区二区三区不卡| 无码AV一区二区三区无码 | 国产一区中文字幕| 中文字幕一区二区三区精彩视频| 波多野结衣一区在线观看| 无码人妻品一区二区三区精99| 国产成人精品无码一区二区老年人| 国产一区二区三区久久| 国产一区二区三区视频在线观看| 水蜜桃av无码一区二区| 久久国产三级无码一区二区|