字串的轉義種種

2021-08-25 09:15:26 字數 1190 閱讀 6390

在程式設計裡,轉義字元指有特殊意味的字元。

在中文中,也有轉義一說,如「社稷」一詞,古人稱土神為「社」,「稷」為五穀之長,立稷而祭,以稷為穀神。古時天子、諸侯都要祭祀社稷,後來就以「社稷」一詞稱國家。又如「齒」是牙齒,年齡也稱年齒。人以年齒相比列,凡不能比次在一起,非同一類的就說「不齒」。

在程式設計裡面,也有轉義一說。你可以翻閱ascii表,你會發現裡面有好多很奇怪的字元,特別是剛開始排列的那些。

00 nul 空 

01 soh 標題開始

02 stx 正文開始

03 etx 正文結束

04 eot 傳輸結否

05 enq 詢問

06 ack 確認

07 bel 響鈴

08 bs 退格

09 ht 橫向列表

10 lf 換行

11 vt 縱向列表

12 ff 換頁

13 cr 回車

14 so 換檔(shift-out)

上面寫的那些其實都可以用轉義字元來表示,比如\0就是空字元啊,\n就是換行啊,\t就是水平製表符啊。發現其實\還有n其實都是字元可以分開來解釋,但是它們組合在一起就又有了新的意思了,就像「社」,「稷」,可以單獨解釋啊,但是合在一起就表示了另乙個意思了,我想這就是轉義的意思吧!也就是說直譯器是乙個字乙個字地理解這個字串的意思的,但是碰到像這些詭異的轉義字元\***就要用另乙個意思來理解了。

在html裡面有轉義的,你看在html裡《和》是敏感詞彙,那麼就要用其他的意思來表示文字意義的「<」和「>」,也就是《這個符號,包括空格在html裡也是詭異的東東,同樣也需要轉義字元來代替, 

在sql裡面,雙引號也是乙個很敏感的字元,為了防止衝突就用\"來表示文字意思的雙引號。

這裡我們可以發現,轉義出現的情況其實是這樣的,當我們沒有辦法用普通的那些abcd1234的字元去表達某個玩意的時候,我們就要用到轉義了。這個玩意可以是html裡的文字意義上的空格或是》<,也可能是sql裡的雙引號。於是轉義就出現了,用普通的字元去表示特殊的意義。

比如說是url引數的轉義,引數裡面如果有&就會錯誤,必須轉義成%xx的樣子才行,空格也要轉,加好也要轉,就是這樣。

但是呢,並不是說轉義只是因為我們不能用常規方法表示,你看那個中文裡的「不齒」,你用「不屑」也可以,「不齒」只是相當於乙個別名而已。像html裡 面,所有的文字意義的字母都是可以用轉義表示的。

像「a」就可以用a;來表示「~」可以用~表示。

字串 轉義 反轉義

本人用wangeditor富文字外掛程式的時候 富文字的內容裡有鏈結 以及各種標籤 想存到資料庫中 出現了 特殊字元 json轉換錯誤 得把字串轉義一下存到後台 靠的就是這幾行 解決的問題 很有用 escapehtml就是把帶有html標籤以及特殊字元給轉義一下 傳給後台 存入資料庫 unescap...

字串 轉義字元 注釋

hello world 我是乙個好人 這種由雙引號引起來的一串字元稱為 字串的字面值 或者簡稱字串 字串的結束是乙個 0的轉義字元,在計算字串長度的時候 0是結束的標誌,不算作字串的內容 關於製表符 tab 製表符字如其名,就是讓你的程式或者文字的格式更加的整齊,他有自動對齊的功能 比如 a b b...

php字串。轉義字元

輸出時是雙引號時,變數會被解析。單引號包裹的 不識別變數名。在雙引號裡 變數名後緊跟乙個非空字元,會變數識別失敗。name 張三 echo 名字是 name 輸出 名字是 張三 echo 名字是 name 輸出 名字是 name echo 名字是 name 北京 輸出 名字是 name背景 其實是找...