Py徐少攻關之初探 編碼 語言分類 (2)

操做系統

 1.管理軟硬件資源
 2.管理調度計算機內部任務
 3.提供給用戶和其餘計算機服務接口
javascript

編碼

ASSIC 每個字符統一須要8bit來存儲php

 

 

MBCS

 

爲了擴充 ASCII編碼,以用於顯示本國的語言,不一樣的國家和地區制定了不一樣的標準,由此產生了 GB2312, BIG5, JIS 等各自的編碼標準。這些使用 2 個 字節來表明一個字符的各類漢字延伸編碼方式,稱爲 ANSI 編碼,又稱爲"MBCS(Muilti-Bytes Charecter Set,多字節字符集)"。在簡體中文系統下,ANSI 編碼表明 GB2312 編碼,在日文 操做系統下,ANSI 編碼表明 JIS 編碼,因此在中文 windows下要轉碼成gb2312,gbk只須要把文本保存爲ANSI 編碼便可。 不一樣 ANSI 編碼之間互不兼容,當信息在國際間交流時,沒法將屬於兩種語言的文字,存儲在同一段 ANSI 編碼的文本中。一個很大的缺點是,同一個編碼值,在不一樣的編碼體系裏表明着不一樣的字。這樣就容易形成混亂。致使了unicode碼的誕生。

 

其中每一個語言下的ANSI編碼,都有一套一對一的編碼轉換器,Unicode變成全部編碼轉換的中間介質。全部的編碼都有一個轉換器能夠轉換到Unicode,而Unicode也能夠轉換到其餘全部的編碼。

 

 

GB2312

 

GB2312 也是ANSI編碼裏的一種,對ANSI編碼最初始的 ASCII編碼進行擴充,爲了知足國內在計算機中使用漢字的須要,中國國家標準總局發佈了一系列的漢字 字符集國家標準編碼,統稱爲GB碼,或國標碼。其中最有影響的是於1980年發佈的《信息交換用漢字編碼 字符集 基本集》,標準號爲GB 2312-1980,因其使用很是廣泛,也常被通稱爲國標碼。GB2312編碼通行於我國內地;新加坡等地也採用此編碼。幾乎全部的中文系統和國際化的軟件都支持GB 2312。

 

GB 2312是一個 簡體中文 字符集,由6763個經常使用漢字和682個 全角的非漢字字符組成。其中漢字根據使用的頻率分爲兩級。一級漢字3755個,二級漢字3008個。因爲字符數量比較大,GB2312採用了二維矩陣編碼法對全部字符進行編碼。首先構造一個94行94列的方陣,對每一行稱爲一個「區」,每一列稱爲一個「位」,而後將全部字符依照下表的規律填寫到方陣中。這樣全部的字符在方陣中都有一個惟一的位置,這個位置能夠用區號、位號合成表示,稱爲字符的區位碼。如第一個漢字「啊」出如今第16區的第1位上,其區位碼爲1601。由於區位碼同字符的位置是徹底對應的,所以區位碼同字符之間也是一一對應的。這樣全部的字符均可經過其區位碼轉換爲數字編碼信息。GB2312字符的排列分佈狀況見表1-4。

 

表1-4 GB2312 字符編碼分佈表

 

分區範圍
符號類型
第01區
中文標點、數學符號以及一些特殊字符
第02區
各類各樣的數學序號
第03區
全角西文字符
第04區
日文平假名
第05區
日文片假名
第06區
希臘字母表
第07區
俄文字母表
第08區
中文拼音字母表
第09區
製表符號
第10-15區
無字符
第16-55區
一級漢字(以拼音字母排序)
第56-87區
二級漢字(以部首筆畫排序)
第88-94區
無字符

 

GB2312字符在計算機中存儲是以其區位碼爲基礎的,其中漢字的區碼和位碼分別佔一個存儲單元,每一個漢字佔兩個存儲單元。因爲區碼和位碼的取值範圍都是在1-94之間,這樣的範圍同西文的存儲表示衝突。例如漢字‘珀’在GB2312中的區位碼爲7174,其兩 字節表示形式爲71,74;而兩個西文字符‘GJ’的存儲碼也是71,74。這種衝突將致使在解釋編碼時到底表示的是一個漢字仍是兩個西文字符將沒法判斷。

 

爲避免同西文的存儲發生衝突,GB2312字符在進行存儲時,經過將原來的每一個 字節第8bit設置爲1同西文加以區別,若是第8bit爲0,則表示西文字符,不然表示GB2312中的字符。實際存儲時,採用了將區位碼的每一個 字節分別加上A0H(160)的方法轉換爲存儲碼,計算機存儲規則是此編碼的補碼,並且是位碼在前,區碼在後。例如漢字‘啊’的區位碼爲1601,其存儲碼爲B0A1H,其轉換過程爲:

 

區位碼
區碼轉換
位碼轉換
存儲碼
1001H
10H+A0H=B0H
01H+A0H=A1H
B0A1H

 

GB2312編碼用兩個 字節(8位2進制)表示一個漢字,因此理論上最多能夠表示256×256=65536個漢字。但這種編碼方式也僅僅在中國行得通,若是您的網頁使用的GB2312編碼,那麼不少外國人在瀏覽你的網頁時就可能沒法正常顯示,由於其 瀏覽器不支持GB2312編碼。固然,中國人在瀏覽外國網頁(好比日文)時,也會出現 亂碼或沒法打開的狀況,由於咱們的 瀏覽器沒有安裝日文的編碼表。

 

 

GBK

 

GBK即漢字內碼擴展規範,K爲擴展的漢語拼音中「擴」字的聲母。英文全稱Chinese Internal Code Specification。GBK編碼標準兼容GB2312,共收錄漢字21003個、符號883個,並提供1894個造字碼位,簡、繁體字融於一庫。GB2312碼是中華人民共和國國家漢字信息交換用編碼,全稱《信息交換用漢字編碼 字符集——基本集》,1980年由國家標準總局發佈。基本集共收入漢字6763個和非漢字圖形字符682個,通行於中國大陸。新加坡等地也使用此編碼。GBK是對GB2312-80的擴展,也就是CP936字碼表 (Code Page 936)的擴展(以前CP936和GB 2312-80如出一轍)。

 

 

基本簡介

 

GB 2312的出現,基本知足了漢字的計算機處理須要,但對於人名、古漢語等方面出現的罕用字,GB 2312不能處理,這致使了後來GBK及GB 18030漢字 字符集的出現。

 

GBK採用雙 字節表示,整體編碼範圍爲8140-FEFE,首字節在81-FE 之間,尾字節在40-FE 之間,剔除 xx7F一條線。總計23940 個碼位,共收入21886個漢字和圖形符號,其中漢字(包括部首和構件)21003 個,圖形符號883 個。P-Windows3.2和蘋果OS以GB2312爲基本 漢字編碼, Windows 95/98則以GBK爲基本漢字編碼。

 

有些漢字用 五筆和拼音都打不出來,如:溙(五筆IDWI),須調出GBK 字符集才能打出這個字。 極品五筆中可右擊 輸入法圖標,設置,屬性中選GBK 字符集極點五筆中可點擊工具條中相關圖標進行轉換。

 

Big5

 

在臺灣、香港與澳門地區,使用的是繁體中文 字符集。而1980年發佈的GB2312面向 簡體中文 字符集,並不支持繁體漢字。在這些使用繁體中文 字符集的地區,一度出現過不少不一樣廠商提出的字符集編碼,這些編碼彼此互不兼容,形成了信息交流的困難。爲統一繁體 字符集編碼,1984年,臺灣五大廠商宏碁、神通、佳佳、零壹以及大衆一同制定了一種繁體中文編碼方案,因其來源被稱爲五大碼,英文寫做Big5,後來按英文翻譯回漢字後,廣泛被稱爲 大五碼

 

大五碼是一種繁體中文漢字 字符集,其中繁體漢字13053個,808個標點符號、希臘字母及特殊符號。 大五碼的編碼碼錶直接針對 存儲而設計,每一個字符統一使用兩個 字節存儲表示。第1 字節範圍81H-FEH,避開了同ASCII碼的衝突,第2字節範圍是40H-7EH和A1H-FEH。由於Big5的字符編碼範圍同GB2312字符的存儲碼範圍存在衝突,因此在同一正文不能對兩種 字符集的字符同時支持。

 

 

 

Unicode

 

如上ANSI編碼條例中所述,世界上存在着多種編碼
方式,在ANSi編碼下,同一個編碼值,在不一樣的編碼體系裏表明着不一樣的字。在簡體中文系統下,ANSI 編碼表明 GB2312 編碼,在日文 操做系統下,ANSI 編碼表明 JIS 編碼,可能最終顯示的是中文,也可能顯示的是日文。在ANSI編碼體系下,要想打開一個文本文件,不但要知道它的編碼方式,還要安裝有對應編碼表,不然就可能沒法讀取或出現 亂碼。爲何 電子郵件和網頁都常常會出現 亂碼,就是由於信息的提供者多是日文的ANSI編碼體系和信息的讀取者多是中文的編碼體系,他們對同一個二進制編碼值進行顯示,採用了不一樣的編碼,致使亂碼。這個問題促使了unicode碼的誕生。

 

若是有一種編碼,將世界上全部的符號都歸入其中,不管是英文、日文、仍是中文等,你們都使用這個 編碼表,就不會出現編碼不匹配現象。每一個符號對應一個惟一的編碼, 亂碼問題就不存在了。這就是Unicode編碼。

 

Unicode固然是一個很大的集合,如今的規模能夠容納100多萬個符號。每一個符號的編碼都不同,好比,U+0639表示阿拉伯字母Ain,U+0041表示英語的大寫字母A,「漢」這個字的Unicode編碼是U+6C49。

 

Unicode當然統一了編碼方式,可是它的效率不高,好比UCS-4(Unicode的標準之一)規定用4個 字節 存儲一個符號,那麼每一個英文字母前都必然有三個字節是0,這對存儲和傳輸來講都很耗資源。

 

UTF-8

爲了提升Unicode的編碼效率,因而就出現了UTF-8編碼。UTF-8能夠根據不一樣的符號自動選擇編碼的長短。好比英文字母能夠只用1個 字節就夠了。
UTF-8的編碼是這樣得出來的,以」漢」這個字爲例:                  漢字須要3個字節
「漢」字的Unicode編碼是U+00006C49,而後把U+00006C49經過UTF-8編碼器進行編碼,最後輸出的UTF-8編碼是E6B189。
 
更多關於編碼的文章 http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html
 
 在windows下要用GBK進行編碼
 

編程語言介紹

 

go ===Go語言是谷歌2009發佈的第二款開源編程語言。Go語言專門針對多處理器系統應用程序的編程進行了優化,使用Go編譯的程序能夠媲美C或C++代碼的速度,並且更加安全、支持並行進程。html

                                                                                                                      推測這個將來會很火
   lua = nginx 的腳本語言, ngnix 是時下最nb web服務器     前端

lua = nginx 的腳本語言, ngnix 是時下最nb web服務器java

 php = 1994, 純web開發語言, 1994 Netscape 瀏覽器誕生了node

java = 1995 由sun 公司開發出來,java 虛擬機 支持跨平臺 python

shell = 腳本語言, 簡單易學,基於unix,linux, 作一些簡單的系統管理任務, 運維人員必學linux

javascript = 是當下使用最爲普遍的語言,主要寫前端的語言,
                    nodejs =後端 全棧式的語言nginx

 編程語言分類

編程語言主要從如下幾個角度爲進行分類,編譯型和解釋型、靜態語言和動態語言、強類型定義語言和弱類型定義語言,每一個分類表明什麼意思呢,咱們一塊兒來看一下。c++

 

編譯和解釋的區別是什麼?

編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機能夠直接以機器語言來運行此程序,速度很快; 

解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,因此運行速度是不如編譯後的程序運行的快的. 

這是由於計算機不能直接認識並執行咱們寫的語句,它只能認識機器語言(是二進制的形式)

 

 

編譯型vs解釋型

編譯型
優勢:編譯器通常會有預編譯的過程對代碼進行優化。由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高。能夠脫離語言環境獨立運行。
缺點:編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編譯不一樣的可執行文件。

解釋型
優勢:有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就能夠,能夠快速部署,不用停機維護。

缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。

 

 

 編譯型=所有翻譯 ,再執行 ,翻譯=編譯 ,c ,c++

解釋性=邊執行邊翻譯   python , php ,java , c#,perl ruby javascript

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

cmd python的使用

開始-->cmd-->cd c:\ -->dir

dir=查看當前目錄文件列表         Tab鍵自動補全

.py是文件格式

將python安裝目錄 放在環境變量中

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Python初探

print(" ")

變量直接寫  z=x*y

變量的命名  suduentNumber 第一個不大寫  或者student_number

python不區分常量或者變量 ,因此潛規則就是所有大寫的變量的變量名來表明爲常量

 

變量賦值  賦值的是變量在內存裏面的值

del 變量 也就是刪除變量 

變量的從新指向 也是刪除這塊變量的內存    --------------------------------------->>>>>python裏面有內存機制  可是仍是本身來寫一下

 

在python 2.0版本中  在程序中 前加上 #! -*- conding:utf-8 -*-      或者#conding :utf-8

msg=u"我愛北京天安門"    #加u就會變成unicode編碼

print msg

print type(msg) # 這個是打印類型

 

python 3.0默認支持中文不會出現亂碼

 

str(a)     變量的強制轉換

 

 

 

 

 

 

 

相關文章
相關標籤/搜索