課程全名:編程幼兒園-快速攻破編程學習障礙,自10月11日開始,每周三開課,共6次課程,至11月15日結束。因之前報名參加了新生大學的JavaScript編程入門課,獲得了免費聽課資格。現在JavaScript的課程已結束(未能跟上課程節奏,還在補課進度中),穿插學習這門課程,查缺補漏,鞏固學習基礎知識。
本課主題:內容和顯示
授課老師:楊兵兵
一、字符編解碼的基本知識(本課最重要)
計算機信息的底層傳輸最終被映射成由0、1組成的二進制流。
文字的編解碼定義
1.編碼:如何將文字圖片等信息以一定的運算轉換成二進制流的形式
2.解碼:將二進制流通過一定運算轉變成能夠識別的文字圖片等信息的過程
一個編碼、解碼的過程,以發送電報舉例:
發件人漢字寫下內容-->發報員參照編碼表找出漢字對應的數字(4個數字對應一個漢字)-->接報員參照編碼表找出數字對應的漢字-->收件人。
常用編碼字符集
ASCII碼(英文所包含的字符)、擴展的ASCII碼(ASCII基礎上擴展的歐洲的一些文字)、Unicode符號集(完整的字符集,可以說是一個包含所有文字的標準)、UTF-8(Unicode一種實現方式)、GB2312/GBK/GB18030(漢字,國標)
編解碼能夠幫助我們認識的問題
亂碼:由于發送方與接收方的編碼表不同時,編碼解碼后的顯示會形成亂碼。
工作生活中常見的亂碼問題的解決辦法:
1. 檢查文件打開軟件的編碼與文件保存軟件的編碼是否一致,即是否支持文件格式,如果支持,僅需要調整一下編碼方式即可。如Mac電腦的中文默認編碼方式是UTF-8,而Windows電腦的中文默認編碼方式是GB2312。
2. 如果通過不支持格式的軟件打開,一定會是亂碼,并且無法通過調整編碼方式來消除。
舉例:
(1)Mac和Windows的郵件系統互發郵件時經常會出現亂碼現象,即編碼方式問題。
(2)瀏覽器打開網頁時若發現亂碼,可嘗試:右鍵點擊網頁空白處-->“檢查元素”-->查看編碼方式(類似形式:< script id="init-script" type="text/javascript" charset="utf-8" >)-->可知編碼方式為UTF-8-->點擊瀏覽器“顯示”--“文本編碼”-->點選“Unicode(UTF-8)”后即可正常顯示。
注:1.課上舉例過程使用safari瀏覽器演示,提到Chrome瀏覽器以前有此功能,現無此功能;2.如發現safari中未發現“檢查元素”選項,可點擊safari的“偏好設置”-->點選“高級”頁面框-->勾選底部“在菜單欄中顯示“開發”菜單”,返回查看即可發現“檢查元素”。(25m)
二、文本和樣式
Word中的樣式
不同的樣式,也是不同的編碼方式,Word采用自行規定的協議,對二進制流進行重新編碼,因為并不開源,其他無法執行Word內部協議的軟件打開即為亂碼。
樣式的作用
豐富的樣式可方便的提供更加清晰、美觀的閱讀體驗。除了Word使用了樣式,瀏覽器的網頁、PDF、其他電子書等都有不同的樣式。
文件擴展名
標識文件類型、什么軟件可以打開此文件。
注意一個坑——隱藏擴展名,修改文件類型即后綴時,可能未能真正修改,注意查看文件根目錄中,去掉“隱藏擴展名”選項。可避免一些異常問題。(35m)
三、不可見字符
什么是不可見字符:空格、回車換行、制表符等等肉眼看不見的占位字符。
不可見字符的作用:實現功能控制或配合樣式等實現相應編輯功能。
如何處理不可見字符:查找、替換、刪除、格式刷(批量處理)等。(45m)
新大CTO徐高陽助陣串場
關于不可見字符
分享一個段子:早年間因同事誤按大量空格引發的代碼問題排查事件——不能忽視不可見字符在編程以及其他操作中的作用。(同時也提到,早年間的編譯器無法自動識別消除大量空格,現在的編譯器通常具備此類功能。)
關于文件名、文件后綴、富文本
養成編寫代碼時,首先要保存為合適的文件名及后綴。
富文本格式(Rich Text Format, 一般簡稱為RTF),不僅存儲了文件的內容,并且把內容的信息存儲在格式里,比編碼信息高級了一層,還帶了格式的信息。Markdown不算是富文本,是HTML+CSS的標記語言,可通過富文本方式進行編輯。
關于新生大學課程學習的探索分享
目標不僅僅是一個課程,上完就結束,而是希望真正能幫助學員達到真正程序員的素質,盡可能多的幫助大家提高。后期或許會采取導師方式,帶動大家一起進步,同時也需要大家時間精力上的付出,掉隊是會比較遺憾。
不用UTF-8,就是耍流氓
因為現在的代碼是會上傳網絡,與大家分享、交流的,當你不用UTF-8時,別人打開時是亂碼,這就很不合適。
有沒有一種編碼格式可以兼容任何一種字符編碼?
理論上肯定是有,8位的UTF-8可能不夠用,進行了拓展至16位的UTF-16,再不夠可以32位的UTF-32。類似網絡設備需求的暴增,現有IP地址存在不夠用的問題,因此逐步由IPV4升級為IPV6。但在目前的計算機領域,UTF-8基本夠用,所以現在最廣泛使用的是UTF-8。
學習是個人的事
微信群的沉淀能力偏弱,利用國慶期間搭建的網站小白學編程(http://code.7xinsheng.com/),希望大家更多的交流學習~!