Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
頁亂碼,就是指平時我們打開一個網頁它的內容看起來奇奇怪怪,不是正常的中文形態,那會不會是一種特殊的非中文系語言呢?有可能,但是可以分辨!
正常的非中文系語言
中文亂碼
那么為什么會發生亂碼呢?首先,需要明確以下幾點:
1,亂碼不是由于你的設備原因導致
2,不只有中文會產生亂碼,其它語言也會有亂碼
3,亂碼的根本原因是因為互聯網的原因
互聯網方便的把全地球的人們連接在一起,于是網絡上的內容可以是任意一種語言產生的,然后當它傳播到另外一種語言使用者(比如中文)面前的時候,因為他們所處的互聯網環境不同,而計算機又不足夠智能的分辨應該以什么樣的語言形式展示內容的時候就發生了頁面亂碼。
那么網頁亂碼怎么解決呢?同樣的,還是需要明確下面幾點:
1,遇到網頁亂碼不要慌,你的設備沒有問題
2,網頁亂碼問題絕對不需要內容閱讀者即用戶自己解決
3,如果你好奇想自己解決,那么只需要通過搜索引擎搜索關鍵字:“ie/360/chrome 網頁編碼設置”,根據出來的內容隨便找一篇照著點幾次鼠標就可以了!
這篇常識的目的是告訴你,互聯網后來是如何解決網頁亂碼的,也就是前面提到的,網頁亂碼不需要用戶自己解決。
隨著互聯網越來普及,亂碼的問題起初非常的容易發生,當然了,發生的原因也很簡單,內容所處的語言環境不同,計算機不知道該怎么顯示了。
于是各個國家的網絡權威機構就一起組織了一個聯盟,專門用來解決網絡上內容亂碼的問題,并且給這個聯盟起了一個名字叫:Unicode
組織建好之后該是商量具體的解決方案了!因為在這之前,每個國家都有自己的語言在計算機中的表示形式(實際就是一張表格),而且隨著各國語言的變遷,這張表格還會時不時升級一下。
那怎么辦呢?最后,Unicode 組織確定了一種非常便捷的解決方法。就是讓各個國家把自己語言在計算機中的表示形式表格,都提交給 Unicode 組織,由 Unicode 組織統一管理,然后把它們都合并到一起形成一張非常大的表格,再交給計算機廠商,在它們出廠計算機的時候默認的把這張巨大的表格都存放到計算機中,這樣每臺計算機就相當于擁有全世界各種語言的表示形式。
這樣當一種語言的內容傳播到另外一種語言使用者面前的時候,計算機就能夠以某種機制監測到使用者的語種,然后使用對應的表示形式來顯示內容,這樣就不會發生亂碼了。
但是正如我們想象的,這張表格非常的龐大,放到用戶的計算機里的時候也是要占用一定的空間呢,所以 Unicode 組織就想辦法怎么樣盡可能的既能讓這張表格表示盡可能多的語言,又能盡可能的小。
于是就出現了“編碼”這個概念!編碼的本質就是說針對不同的語言,使用的存儲空間不一樣!比如,漢字和英文字母的占用空間就完全不同,這樣就了各種形式的編碼方案,網絡上被人們熟知的編碼方案包括:ASCII,UTF8,GBK,GB2312等,目前國際上最通用的編碼方案是UTF8。
現在想必大家都知道亂碼的原因了,那么你知道為什么現在我們很少遇到網頁亂碼了嗎?
哈,沒錯,因為我們的電腦都升級換代了呀 ^_^
最后,大家現在還有遇到網頁亂碼嗎?留言互動吧 ^_^
文亂碼問題是比較常見和煩人的問題,本文通過一個小程序介紹了如何通過Servlet從上一個頁面獲取參數,
方法很簡單:調用request.getParameter(String s)方法。
解決中文亂碼問題的方法是:
首先要設置response響應的格式:response.setContextType("text/html;charSet=GBK");
然后在加上request.setCharacterEncoding("GBK")
需要注意的是這是解決post方式提交的內容的中文亂碼問題。
解決get方式提交內容的中文亂碼問題的方法:
在Tomcat->conf文件夾->server.xml-->connecter標簽里加上:
URIEncoding="GBK"(注意:在xml里面“=”兩邊不要有空格)
關于Post和Get之間的區別可以看我轉載的另一篇博文:
HTTP POST GET 本質區別詳解
例子:
1.threeparams.html
2.ThreeParams.java
補充:
上面的這個例子.html中每個name都不一樣,如果有多個一樣的name時,可以按如下的方法來獲取:
1)Enumeration paramNames=request.getParameterNames()
調用此方法獲得所有參數的名字,返回一個Enumeration
2) while(paramNames.hasMoreElements()){
String paramName=(String)paramNames.nextElement();
String[] paramValues=request.getParameterValues(paramName);
...
幾天有OMI的用戶反映,安裝OMI時有中文亂碼現象,我還說不可能。我們的程序在windows,linux都部署過無數次了,開發時都是UTF8編碼的,咋還會亂碼呢。結果看了半天也沒看出個啥,還是沒解決。
最近新安裝程序時,新下載了一個tomcat8.5的版本,一跑程序還真是html頁亂碼了,但JSP頁沒事。因為之前我們的程序都是跑在tomcat7,最高是tomcat8.0,沒試過更高的,高版本確實有問題,且控制臺中文也是亂碼。
一、嘗試了一些網友給的辦法,下面說一下解決方案:
1、tomcat\bin\catalina.bat 中添加,
set JAVA_OPTS=-Xms512m -Xms1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8
我的添加位置如圖
?前面是正好順便設置了JVM的內存,解決問題的主要后面的部分。
2、修改tomcat\conf\server.xml,加入 URIEncoding="UTF-8"
加入如圖位置
?好象是第一步就可以了,保險起見第二步也加上吧 。
二、關于控制臺亂碼解決辦法:
修改tomcat\conf\logging.properties
#java.util.logging.ConsoleHandler.encoding=UTF-8(GBK)
將UTF-8改為GBK,或者把整行注掉
我是把相關編碼全注了
以上,如未解決問題可以加QQ群交流,群名:Kettle實戰。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。