日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网页UTF8转换GBK后出现问号?的原因

發布時間:2023/12/2 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网页UTF8转换GBK后出现问号?的原因 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網頁UTF8轉換GBK后出現問號"?"的原因

?網頁編碼轉換是進行網頁解析和處理的第一步。

互聯網上越來越多的網頁采用UTF-8編碼,UTF-8用1到6個字節編碼UNICODE字符,收錄了超過10萬個字符,BMP部分也有六萬多個字符

?

而在進行編碼轉換時,我們往往需要轉換為GBK編碼進行后續處理,很多網頁在轉換后,會發現出現大量連續的問號:????????

這些惡心的問號是在編碼轉換階段引入的,原因是:

?

GBK字符集只收錄了兩萬多個字符,比UTF-8的字符數量少得多。

轉化到GBK編碼的時候,就會有編碼落到GBK字符集以外,不能轉化成GBK編碼。這部分字符在轉換之后的字符串中都變成了’?’

?

UTF-8:采用變長字節 (1 ASCII, 2 希臘字母和排版字符, 3 漢字等多字節東亞語言, 4 平面符號和特殊符號等),

其中雙字節字符中有一些沒有在GBK字符集中,通常來說UTF-8無法識別的字符都是非常生僻的字符,幾乎難以遇到,可不用考慮;但有一個字符非常特殊:C2A0

?

C2A0是UTF8里的排版用空格(區別于ASI =20的空格),這個特殊的字符(unicode序號為0xA0),不在GBK字符集中。卻頻繁用于xml/html等格式的文件中。大量UTF-編碼的網頁使用這個字符用作占位的空格。而且不同瀏覽器對它的處理方式不同:IE瀏覽器識別出該符號并以空格顯示,firefox則替換為xml轉義字符   當網頁中用C2A0進行文字排版時,我們對網頁進行編碼轉換為GBK時就會出現很多"?"問號

?

一個簡便的方案為,在網頁轉碼前,進行過濾:

if(code_type == "UTF8")

{

?? str = str.replace('C2A0', ' ');

}

總結

以上是生活随笔為你收集整理的网页UTF8转换GBK后出现问号?的原因的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。