前端小白歷險記(二)原來是你騰訊搞的鬼!

      網友投稿 928 2025-03-31

      書接前文(??https://bbs.huaweicloud.com/blogs/181124? )

      在 @胡琦 大大的幫助下,張小白終于學會了用VsCode的hexdump插件查看十六進制原文,從而分析出了: 鏈接失效是因為 abc 第一個a字母和href之間的空格,其實是由兩個字節構成,0xC2 0xA0(以下簡稱C2?A0)。

      根據張小白的杠精性尿性,光光知道“C2 A0 !=== 20,從而導致斜杠丟失”這個事實是不能滿足張小白的。張小白想知道,自己何以淪落至此?所以C2 A0就變成了張小白心中的夢魘,直到他在度娘盤到了以下內容:

      看來這不是一個特例,而是一個普遍的問題。無論是HTML,還是Java,Python,都會遇到類似的問題。甚至這個C2 A0幾乎無法通過trim去掉空格,導致原本你想去掉空格的時候,假空格還堅挺地站立在那里。C2 A0叫做 NO-BREAK SPACE。中文翻譯過來就是:不間斷空格。它會表現為一個半角空格,這跟ASCII碼為0x20的空格在展示上完全一樣,這造成在VsCode編輯器上就有很大的迷惑性。網上因為這事兒中招的人還特別多。

      那么,它到底是如何產生的?張小白一直在想如何重現這個問題。當然,所謂的重現并不是說,在上次錯誤HTML文檔的基礎上做Ctrl-C和Ctrl-V,而是看看到底啥情況會出現C2?A0。

      直接在VsCode中反復轉換好像不大容易試出來,張小白又展開了進一步的搜索,搜索工具除了度娘之外,使用了bing, 360和sogou。(鑒于最近有人因使用科學軟件被抓,張小白也不敢學科學)。

      要知道,張小白在上《WEB前端全棧成長計劃》課程的時候,是隨時用?微信做筆記的:要么截圖,要么發一些文字留存。稍后再對這些內容做整理,就可以形成一篇圖文并茂的文字(包括本文的誕生)。

      所以,張小白就做了一個很簡單的實驗:在VScode上快速建立一個HTML文件(還記得!+TAB鍵嗎?不會的,學一下!)

      我們預覽下:

      然后將下面這段代碼貼到微信中去:

      百度

      如圖所示:

      (是的,我可能是發給了我的小號,或者別人的大號,大家都不要猜了)。

      然后,我把這段文字,再從微信CTRL-C,CTRL-V回VsCode的HTML文件中。

      你看的沒錯,貼回來就是這個樣子,后面好像多了個空格。刪掉那個空格,讓<>不再飄紅:

      好像沒問題吧?

      預覽一下:

      終于重現故障!大快小白心!

      拿出Hexdump大旗。。。

      從圖中可見,第二個的空格已經變成了 C2 A0.

      看來,果然是騰訊的微信在使用ctrl-C,ctrl-V往VsCode編輯器拷貝東西的時候,微信會在你拷貝的時候加點“料”。(是防拷貝政策嗎?)

      這個時候應該怎么辦?

      試試使用記事本big法:先將微信內容Ctrl-C后,粘貼到記事本上,然后再Ctrl-C記事本上的內容,再Ctrl-V到Vscode里面。

      以前一般有格式問題,比如字體字號之類的,張小白只要按照這個辦法,相應的格式就會消失。那么,這種辦法有效嗎?

      我們再預覽下:

      一點用都沒有。即便是記事本,也會將C2 A0原封不動的拷貝過去。還是無杠青年。

      當然有一種辦法,就是你貼到記事本的時候,將空格刪掉再重打一遍,不過這個跟你貼到VsCode后刪掉空格再重打一遍空格又有何區別呢?

      看來使用快捷鍵或工具來轉換C2 A0的方法似乎沒用,張小白又找了一些代碼轉換的方法,如:

      Python代碼轉換法:代碼convert.py

      #?-*-?coding:utf-8?-*- import?os import?sys import?io reload(sys) sys.setdefaultencoding('utf-8') #打開源文件,讀取內容 org_file=open("C:\Users\zhang\Desktop\space.html","r") org_str=org_file.read() #替換為空格 dest_str=org_str.replace(u"\xa0",?u'\x20') #注意,此處"\xa0"不能輸入為"\xc2\xa0"! #print(dest_str) #打開目的文件,寫入替換后的內容 dest_file=io.open("C:\Users\zhang\Desktop\space-converted.html","w",encoding="utf-8") dest_file.write(dest_str)

      在VsCode中執行:

      打開生成后的代碼:space-converted.html?使用hexdump查看:

      瀏覽器預覽都可以了:

      前端小白歷險記(二)原來是你騰訊搞的鬼!

      參考文件:

      1:《C2 A0 特殊空格》?https://www.yangdx.com/2019/12/74.html

      2:《C2 A0 不可見字符到底是什么?半角非中斷空格》https://blog.csdn.net/qfzhangwei/article/details/89505441

      3:《關于替換“c2a0”十六進制字符的方法》https://blog.csdn.net/ampt4027/article/details/101244505

      4:《【copy攻城獅日志】斜杠去哪兒了?聊聊前端中進制》https://bbs.huaweicloud.com/forum/thread-66351-1-1.html

      HTML5

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:word下一頁的文字提不上去怎么辦(WORD下一頁文字上不去怎么辦)
      下一篇:Excel中表格出現vlookup函數不出來的解決方法(excelvlookup函數不出結果)
      相關文章
      亚洲熟妇av一区二区三区| 亚洲美女高清一区二区三区| 国产亚洲人成网站在线观看| 另类图片亚洲校园小说区| 亚洲av无码一区二区三区在线播放| 亚洲中文无码mv| 亚洲中文字幕乱码AV波多JI| 亚洲熟妇无码八V在线播放| 2020国产精品亚洲综合网| 亚洲国产日韩女人aaaaaa毛片在线 | 亚洲国产精品无码中文字| 一本色道久久综合亚洲精品| 久久久久亚洲AV综合波多野结衣 | 亚洲手机中文字幕| 亚洲国产精品午夜电影| 亚洲精品人成网线在线播放va| 亚洲国产成人久久精品app| 亚洲依依成人精品| 激情综合亚洲色婷婷五月| 一本色道久久综合亚洲精品蜜桃冫 | 亚洲人成免费网站| 国内精品久久久久影院亚洲| 亚洲欧洲AV无码专区| 婷婷亚洲综合五月天小说在线| 亚洲精品成a人在线观看| 中文字幕亚洲一区| 亚洲人成自拍网站在线观看| 亚洲伦理中文字幕| 亚洲Av永久无码精品黑人| 亚洲成av人片一区二区三区| 国产亚洲精久久久久久无码AV| 亚洲精品无码久久千人斩| 亚洲嫩模在线观看| 亚洲午夜电影在线观看| 亚洲日韩一区二区一无码| 亚洲精品无码你懂的网站| 国产亚洲精品自在久久| 亚洲黄色高清视频| 美女视频黄免费亚洲| jjzz亚洲亚洲女人| 国产亚洲3p无码一区二区|