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 a级亚洲片精品久久久久久久,国产精品久久久精品视频,www.伊人

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          html亂碼-解決gb2312編碼導致亂碼問題

          幾天保存了網絡上的一個頁面,瀏覽器打開后,發現是亂碼。如下圖:

          亂碼網頁

          出現這個問題怎么處理呢?下面幫你解決

          頁面html源碼

          查看html,看到這里用了國標標準,看源碼截圖

          <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

          解決方法:

          把gb2312改成utf-8即可

          修改為utf-8

          修改后的結果,如圖:

          修改后的展示

          知識分享:

          utf-8 和gb3212 的區別

          utf-8 這個是國際通用字庫,支持各種不同的語言

          gb3212這個是中國的字庫,支持簡體中文和少數外語+一些符號,文件資源少一點

          區別:utf-8跨平臺兼容性更好,由于它字庫更全所以加載會慢好多

          html的charset屬性

          charset屬性是定義HTML文檔的字符編碼格式。

          常見的字符編碼有:Unicode、utf-8、gbk、gb2312

          其中:

          gbk是國家標準的擴展版(增加了繁體并包含所有亞洲字符集)

          Unicode是國際組織制定的旨在容納全球所有字符的編碼方案,包括字符集、編碼方案等。又稱為萬國碼、統一碼、單一碼

          景說明

          假設需要劫持http響應并在html頁面中注入一段js代碼后再傳回瀏覽器,實現在瀏覽器出現一個彈框消息提醒。

          由于原始html頁面編碼格式存在UTF-8、GBK等多種編碼格式,如果注入的js包含中文消息的話,那么在UTF-8或GBK編碼的頁面就會有一個出現亂碼。有沒有辦法做到不管是針對GBK、UTF-8編碼的頁面都能做到正常顯示而不會出現亂碼哪?

          產生亂碼的原因

          首先來分析一下產生亂碼的原因,我們在瀏覽器看到的信息都是通過圖形學手段在顯示器上呈現出來的,而實際保存在計算機硬件上的都是0和1(因為計算機實現是基于二進制),那么計算機要顯示、傳遞信息就需要依靠一套規則把一串串的0和1識別為正確的字符,這就是編碼。

          例如01000001在ASCII編碼規則下對應字母A。相同的0/1串,不同的編碼解析出的字符一般是不同的,因此如果html頁面按照UTF-8的編碼解析正常,那么按照GBK的編碼解析就會是亂碼了。根據上面的示意圖,假設注入的js代碼為utf-8編碼格式,而原始html編碼格式也為UTF-8編碼格式,那么最終注入這部分中的中文就能正常顯示,但是如果原始html為GBK編碼,那注入的這部分js代碼的中文就會顯示亂碼。

          解決辦法

          有一種unicode統一編碼字符集,目標是把所有文字、字符統一編碼,也就是一串0/1組合在unicode字符集下對應的字符是唯一的,不會存在歧義。而js是支持解析unicode字符的,那么就可以在注入js中把要顯示的消息統一轉換為unicode編碼,瀏覽器端去解析這個unicode編碼,這樣不管原始html是UTF-8還是GBK,都能正常顯示中文。

          原始注入js代碼關于中文字符的部分

          // utf-8編碼格式
          let message = "中文";

          解決亂碼的注入js代碼關于中文字符的部分

          // utf-8編碼格式
          let message = "\\u4e2d\\u6587";  // 這個編碼對應上面的message"中文"

          注意:

          1. 注入的js代碼仍然是utf-8編碼格式,只是消息內容轉換為unicode編碼的形式;
          2. unicode中0x4e2d表示的0/1串對應漢字"中",0x6587對應的0/1串對應漢字"文";
          3. message其實也不是真正的unicode編碼,它只是普通的字符串,只是使用了unicode對應的碼點(也就是二進制對應的數值),因為可以利用這個碼點在瀏覽器中恢復出正確的字符,事實上unicode字符集并沒有規定具體的編碼格式。

          幾天有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實戰。


          主站蜘蛛池模板: 亚洲一区二区三区写真| 日韩一区二区精品观看| 波多野结衣中文字幕一区二区三区| 97精品国产福利一区二区三区| 国产未成女一区二区三区| 一区高清大胆人体| 相泽亚洲一区中文字幕| 日本一区二区在线不卡| 国产精品视频免费一区二区| 久久综合亚洲色一区二区三区| 国模丽丽啪啪一区二区| 国产一区二区在线观看视频| 69久久精品无码一区二区| 麻豆一区二区在我观看| 久久精品国产免费一区| 国产精品日本一区二区不卡视频| 一区三区三区不卡| aⅴ一区二区三区无卡无码| 卡通动漫中文字幕第一区| 精品一区二区久久久久久久网精| 亚洲综合无码一区二区痴汉 | 人妻视频一区二区三区免费| 久久久精品人妻一区二区三区四| 久久精品国产一区二区三区肥胖 | 99国产精品一区二区| 国产亚洲情侣一区二区无| 中文字幕av无码一区二区三区电影| 久久无码一区二区三区少妇| 国产一区二区四区在线观看| 日本免费电影一区二区| 亚洲一区无码中文字幕乱码| 精品国产一区二区三区香蕉| 综合一区自拍亚洲综合图区| 国产aⅴ一区二区| 制服中文字幕一区二区| 人妻夜夜爽天天爽爽一区| 国产精品电影一区| 日本在线视频一区| 亚洲一区中文字幕久久| 欧美人妻一区黄a片| 亚洲av区一区二区三|