符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
? | ⇠ | \u21E0 | E0 | ? | ⇢ | \u21E2 | E2 |
? | ⇡ | \u21E1 | E1 | ? | ⇣ | \u21E3 | E3 |
? | ↞ | \u219E | 9E | ? | ↠ | \u21A0 | A0 |
? | ↟ | \u219F | 9F | ? | ↡ | \u21A1 | A1 |
← | ← | \u2190 | 90 | → | → | \u2192 | 92 |
↑ | ↑ | \u2191 | 91 | ↓ | ↓ | \u2193 | 93 |
? | ↔ | \u2194 | 94 | ? | ↕ | \u2195 | 95 |
? | ⇄ | \u21C4 | C4 | ? | ⇅ | \u21C5 | C5 |
? | ↢ | \u21A2 | A2 | ? | ↣ | \u21A3 | A3 |
? | ⇞ | \u21DE | DE | ? | ⇟ | \u21DF | DF |
? | ↫ | \u21AB | AB | ? | ↬ | \u21AC | AC |
? | ⇜ | \u21DC | DC | ? | ⇝ | \u21DD | DD |
? | ↚ | \u219A | 9A | ? | ↛ | \u219B | 9B |
? | ↮ | \u21AE | AE | ? | ↭ | \u21AD | AD |
? | ⇦ | \u21E6 | E6 | ? | ⇨ | \u21E8 | E8 |
? | ⇧ | \u21E7 | E7 | ? | ⇩ | \u21E9 | E9 |
▲ | ▲ | \u25B2 | B2 | ? | ► | \u25BA | BA |
▼ | ▼ | \u25BC | BC | ? | ◄ | \u25C4 | C4 |
? | ➔ | \u2794 | 94 | ? | ➙ | \u2799 | 99 |
? | ➨ | \u27A8 | A8 | ? | ➲ | \u27B2 | B2 |
? | ➜ | \u279C | 9C | ? | ➞ | \u279E | 9E |
? | ➟ | \u279F | 9F | ? | ➠ | \u27A0 | A0 |
? | ➤ | \u27A4 | A4 | ? | ➥ | \u27A5 | A5 |
? | ➦ | \u27A6 | A6 | ? | ➧ | \u27A7 | A7 |
? | ➵ | \u27B5 | B5 | ? | ➸ | \u27B8 | B8 |
? | ➼ | \u27BC | BC | ? | ➽ | \u27BD | BD |
? | ➺ | \u27BA | BA | ? | ➳ | \u27B3 | B3 |
? | ↷ | \u21B7 | B7 | ? | ↶ | \u21B6 | B6 |
? | ↻ | \u21BB | BB | ? | ↺ | \u21BA | BA |
? | ↵ | \u21B5 | B5 | ? | ↯ | \u21AF | AF |
? | ➾ | \u27BE | BE |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
? | ❤ | \u2764 | 64 | ? | ✈ | \u2708 | 08 |
★ | ★ | \u2605 | 05 | ? | ✦ | \u2726 | 26 |
? | ☀ | \u2600 | 00 | ◆ | ◆ | \u25C6 | C6 |
? | ◈ | \u25C8 | C8 | ? | ▣ | \u25A3 | A3 |
? | ☻ | \u263B | 3B | ? | ☺ | \u263A | 3A |
? | ☹ | \u2639 | 39 | ? | ✉ | \u2709 | 09 |
? | ☎ | \u260E | 0E | ? | ☏ | \u260F | 0F |
? | ✆ | \u2706 | 06 | ? | � | \uFFFD | \FFFD |
? | ☁ | \u2601 | 01 | ? | ☂ | \u2602 | 02 |
? | ❄ | \u2744 | 44 | ? | ☃ | \u2603 | 03 |
? | ❈ | \u2748 | 48 | ? | ✿ | \u273F | 3F |
? | ❀ | \u2740 | 40 | ? | ❁ | \u2741 | 41 |
? | ☘ | \u2618 | 18 | ? | ❦ | \u2766 | 66 |
? | ☕ | \u9749 | 49 | ? | ❂ | \u2742 | 42 |
? | ☥ | \u2625 | 25 | ? | ☮ | \u262E | 2E |
? | ☯ | \u262F | 2F | ? | ☪ | \u262A | 2A |
? | ☤ | \u2624 | 24 | ? | ✄ | \u2704 | 04 |
? | ✂ | \u2702 | 02 | ? | ☸ | \u2638 | 38 |
? | ⚓ | \u2693 | 93 | ? | ☣ | \u2623 | 23 |
? | ⚠ | \u26A0 | A0 | ? | ⚡ | \u26A1 | A1 |
? | ☢ | \u2622 | 22 | ? | ♻ | \u267B | 7B |
? | ♿ | \u267F | 7F | ? | ☠ | \u2620 | 20 |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
$ | $ | \u0024 | >\0024<24 | ¢ | ¢ | \u00A2 | >\00A2<> |
£ | £ | \u00A3 | >\00A3<> | ¤ | ¤ | \u00A4 | >\00A4<> |
€ | € | \u20AC | AC | ¥ | ¥ | \u00A5 | >\00A5<> |
? | ₱ | \u20B1 | B1 | ? | ₹ | \u20B9 | B9 |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
? | ½ | \u00BD | >\00BD<> | ? | ¼ | \u00BC | >\00BC<> |
? | ¾ | \u00BE | >\00BE<> | ? | ⅓ | \u2153 | 53 |
? | ⅔ | \u2154 | 54 | ? | ⅛ | \u215B | 5B |
? | ⅜ | \u215C | 5C | ? | ⅝ | \u215D | 5D |
‰ | ‰ | \u2030 | 30 | % | % | \u0025 | >\0025<25 |
< | < | \u003C | >\003C<3C | > | > | \u003E | >\003E<3E |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
? | ♩ | \u2669 | 69 | ? | ♪ | \u266A | 6A |
? | ♫ | \u266B | 6B | ? | ♬ | \u266C | 6C |
? | ♭ | \u266D | 6D | ? | ♯ | \u266F | 6F |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
| \u00A0 | >\00A0<> | ? | ☐ | \u2610 | 10 | |
? | ☑ | \u2611 | 11 | ? | ☒ | \u2612 | 12 |
? | ✓ | \u2713 | 13 | ? | ✔ | \u2714 | 14 |
? | ✕ | \u10005 | 005 | ? | ✖ | \u2716 | 16 |
? | ✗ | \u2717 | 17 | ? | ✘ | \u2718 | 18 |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
★ | ★ | \u2605 | 05 | ? | ✭ | \u272D | 2D |
? | ✮ | \u272E | 2E | ☆ | ☆ | \u2606 | 06 |
? | ✪ | \u272A | 2A | ? | ✡ | \u2721 | 21 |
? | ✯ | \u272F | 2F | ? | ✵ | \u2735 | 35 |
? | ✶ | \u2736 | 36 | ? | ✸ | \u2738 | 38 |
? | ✹ | \u2739 | 39 | ? | ✺ | \u273A | 3A |
? | ✱ | \u2731 | 31 | ? | ✲ | \u2732 | 32 |
? | ✴ | \u2734 | 34 | ? | ✳ | \u2733 | 33 |
? | ✻ | \u273B | 3B | ? | ✽ | \u273D | 3D |
? | ❋ | \u274B | 4B | ? | ❆ | \u2746 | 46 |
? | ❄ | \u2744 | 44 | ? | ❅ | \u2745 | 45 |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
? | ♈ | \u2648 | 48 | ? | ♉ | \u2649 | 49 |
? | ♊ | \u264A | 4A | ? | ♋ | \u264B | 4B |
? | ♌ | \u264C | 4C | ? | ♍ | \u264D | 4D |
? | ♎ | \u264E | 4E | ? | ♏ | \u264F | 4F |
? | ♐ | \u2650 | 50 | ? | ♑ | \u2651 | 51 |
? | ♒ | \u2652 | 52 | ? | ♓ | \u2653 | 53 |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
? | ♚ | \u265A | 5A | ? | ♛ | \u265B | 5B |
? | ♜ | \u265C | 5C | ? | ♝ | \u265D | 5D |
? | ♞ | \u265E | 5E | ? | ♟ | \u265F | 5F |
? | ♔ | \u2654 | 54 | ? | ♕ | \u2655 | 55 |
? | ♖ | \u2656 | 56 | ? | ♗ | \u2657 | 57 |
? | ♘ | \u2658 | 58 | ? | ♙ | \u2659 | 59 |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
? | ♠ | \u2660 | 60 | ? | ♣ | \u2663 | 63 |
? | ♥ | \u2665 | 65 | ? | ♦ | \u2666 | 66 |
? | ♤ | \u2664 | 64 | ? | ♧ | \u2667 | 67 |
? | ♡ | \u2661 | 61 | ? | ♢ | \u2662 | 62 |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
Α | Α | \u0391 | 91 | Β | Β | \u0392 | 92 |
Γ | Γ | \u0393 | 93 | Δ | Δ | \u0394 | 94 |
Ε | Ε | \u0395 | 95 | Ζ | Ζ | \u0396 | 96 |
Η | Η | \u0397 | 97 | Θ | Θ | \u0398 | 98 |
Ι | Ι | \u0399 | 99 | Κ | Κ | \u039A | 9A |
Λ | Λ | \u039B | 9B | Μ | Μ | \u039C | 9C |
Ν | Ν | \u039D | 9D | Ξ | Ξ | \u039E | 9E |
Ο | Ο | \u039F | 9F | Π | Π | \u03A0 | A0 |
Ρ | Ρ | \u03A1 | A1 | Σ | Σ | \u03A3 | A3 |
Τ | Τ | \u03A4 | A4 | Υ | Υ | \u03A5 | A5 |
Φ | Φ | \u03A6 | A6 | Χ | Χ | \u03A7 | A7 |
Ψ | Ψ | \u03A8 | A8 | Ω | Ω | \u03A9 | A9 |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
? | ☨ | \u2628 | 28 | ? | ☩ | \u2629 | 29 |
? | ✝ | \u271D | 1D | ? | ✞ | \u271E | 1E |
? | ✟ | \u271F | 1F | ? | ✠ | \u2720 | 20 |
? | ✚ | \u271A | 1A | ? | † | \u2020 | 20 |
? | ✢ | \u2722 | 22 | ? | ✤ | \u2724 | 24 |
? | ✣ | \u2723 | 23 | ? | ✥ | \u2725 | 25 |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
? | ® | \u00AE | >\00AE<> | ? | © | \u00A9 | >\00A9<> |
? | ℗ | \u2117 | 17 | ? | | \u0099 | >\0099<99 |
? | ℠ | \u2120 | 20 |
符號 | UNICODE | 符號 | UNICODE | ||||
HTML | JS | CSS | HTML | JS | CSS | ||
? | « | \u00AB | >\00AB<> | ? | » | \u00BB | >\00BB<> |
? | | \u008B | >\008B<8B | ? | | \u009B | >\009B<9B |
“ | “ | \u201C | 1C | ” | ” | \u201D | 1D |
‘ | ‘ | \u2018 | 18 | ’ | ’ | \u2019 | 19 |
? | • | \u2022 | 22 | ? | ◦ | \u25E6 | E6 |
? | ¡ | \u00A1 | >\00A1<> | ? | ¿ | \u00BF | >\00BF<> |
℅ | ℅ | \u2105 | 05 | № | № | \u2116 | 16 |
& | & | \u0026 | >\0026<26 | @ | @ | \u0040 | >\0040<40 |
? | ℞ | \u211E | 1E | ℃ | ℃ | \u2103 | 03 |
℉ | ℉ | \u2109 | 09 | ° | ° | \u00B0 | >\00B0<> |
| | \u007C | >\007C<7C | | | ¦ | \u00A6 | ||
– | – | \u2013 | 13 | — | — | \u2014 | 14 |
… | … | \u2026 | 26 | ? | ¶ | \u00B6 | >\00B6<> |
~ | ∼ | \u223C | 3C | ≠ | ≠ | \u2260 |
三種用法都在里面了
nicode 聯盟(Unicode Consortium)
Unicode 聯盟(Unicode Consortium)開發了 Unicode 標準(Unicode Standard)。他們的目標是使用標準的 Unicode 轉換格式(即 UTF,全稱 Unicode Transformation Format)取代現有的字符集。
Unicode 標準是一個成功的創舉,在 HTML、XML、Java、JavaScript、E-mail、ASP、PHP 中都得到實現。Unicode 標準也得到許多操作系統和所有現代瀏覽器的支持。
Unicode 聯盟與領先的標準開發組織合作,這些組織有 ISO、W3C 和 ECMA。
Unicode 字符集
Unicode 可以由不同的字符集實現。最常用的編碼是 UTF-8 和 UTF-16:
字符集 | 描述 |
---|---|
UTF-8 | UTF8 中的字符可以是 1 到 4 字節長。UTF-8 可以代表 Unicode 標準中的任何字符。UTF-8 向后兼容 ASCII。UTF-8 是電子郵件和網頁的首選編碼。 |
UTF-16 | 16 位 Unicode 轉換格式是一種可變長度的 Unicode 字符編碼,能夠編碼整個 Unicode 指令表。UTF-16 主要用于操作系統和環境,如 Microsoft Windows、Java 和 .NET。 |
提示:Unicode 的前 128 個字符(與 ASCII 一一對應)使用一個與 ASCII二進制值相同的八位組進行編碼,使有效的 ASCII 文本在進行 UTF-8 編碼時也是有效的。
提示:所有的 HTML 4 處理器支持 UTF-8,所有的 HTML 5 和 XML 處理器支持 UTF-8 和 UTF-16!
HTML5 標準:Unicode UTF-8
因為 ISO-8859 中字符集大小是有限的,且在多語言環境中不兼容,所以 Unicode 聯盟開發了 Unicode 標準。
Unicode 標準覆蓋了(幾乎)所有的字符、標點符號和符號。
Unicode 使文本的處理、存儲和運輸,獨立于平臺和語言。
HTML-5 中默認的字符編碼是 UTF-8。
下面列出了一些 HTML5 支持的 UTF-8 字符集:
字符集 | 十進制 | 十六進制 |
---|---|---|
C0 控制與基本的 Latin(C0 Controls and Basic Latin) | 0-127 | 0000-007F |
C1 控制與 Latin-1 的補充(C1 Controls and Latin-1 Supplement) | 128-255 | 0080-00FF |
Latin 擴展 A(Latin Extended-A) | 256-383 | 0100-017F |
Latin 擴展 B(Latin Extended-B) | 384-591 | 0180-024F |
如果 HTML5 網頁使用不同于 UTF-8 的字符,則需要在 <meta> 標簽中指定,如下:
實例
<meta charset="ISO-8859-1">
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
周的時候,朋友圈的直升飛機不知道為什么就火了,很多朋友開著各種花式飛機帶著起飛。
圖片來自網絡
還沒來得及了解咋回事來著,這個直升飛機就到的微博熱搜。
圖片來自網絡
后面越來越多人開來他們的直升飛機,盤旋在朋友圈上方。于是很多朋友開來他們的坦克,專打直升飛機,一轟一個準。
圖片來自網絡
好了,說回正題!
程序員朋友應該都很熟悉 Unicode (萬國碼),它幾乎包含世界上所有符號,比如組成直升飛機這幾個特殊符號對應的 Unicode 碼分別為:
ps:推薦一個網站,可以根據符號搜對應的 Unicode 碼:https://unicode.yunser.com/unicode
除了這些正常字符以外,Unicode 還包含著各種各樣的奇葩字符。
除了正常的我們熟知的文字以外,Unicode 中還有一些奇怪的文字,比如下面這些文字
這咋讀?某少?
世代?
恩?超出認知范圍
除了這些奇怪文字以外,Unicode 還有一些奇葩的的符號。
例如下面一整套麻將牌:
一整套的撲克牌:
一整套國際象棋:
image-20200725215319183
除了這些,通過組合符合,我們還可以造出各種各樣的顏文字(??????)??、
另外 Unicode 還收錄著我們常用的 Emoji 。
除了這些之外,Unicode 中還有一些特殊字符的,利用這些字符,我們還可以玩出很多有趣的騷操作。
Unicode 有一類字符稱為組合字符,它可以附加在前一個非組合字符上,從而使整體看起來像是一個字符。
組合字符原來目的是為了解決一些地區語言、文字特殊的需要,比如說泰文聲調符號與母音符號。
正常使用的情況下,這些組合字符數量都會有一些限制。但是在 Unicode 組合字符設計上,并沒有加這種限制,這樣使我們可以無限加這類組合字符。
利用這個特性,可以達到一些惡搞效果,比如「擊穿天花板」與「鑿穿地板」的效果。
上面實現原理其是利用以下兩個組合字符:
上翻字符
下翻字符
只要復制這兩個字符相應的 HTML 代碼,跟在正常的字符后面,就可以使這兩個字符附加在普通字符上,比如下面實現效果為
黑??
Unicode 碼值通常使用 U+N(16 進制N 代表碼值),比如 A 的碼值為 U+0041。
在 HTML 中 Unicode 可以使用 N;(十進制,N 代表碼值)表示
在 JS 中 Unicode 中需要使用] \uN(16 進制N 代表碼值)表示
只要我們在普通字符多復制幾個這類附加字符,就可以形成上述「擊穿」效果。
還記得上面說的泰文嗎,曾經有一段時間貼吧,很流行一種噴射文,比如下面的效果。
向左噴
向右噴
左右互噴
這種噴射文實際原理就是利用泰文中聲調符號附加在其他正常符號上。
不過現在這個效果貌似已經沒辦法再復現了,現在我們只能看到這樣的效果:
在一些老版本的系統/瀏覽器可能還能看到這種效果,知道的小伙伴留言區可以告知一下。
Unicode 中還有一類格式字符,不可見,不可打印,主要作用于調整字符的顯示格式,所以我們將其稱為零寬字符。
零寬字符主要有以下幾類:
零寬度空格符 (zero-width space) U+200B : 用于較長單詞的換行分隔
零寬度非斷空格符 (zero width no-break space) U+FEFF : 用于阻止特定位置的換行分隔
零寬度連字符 (zero-width joiner) U+200D : 用于阿拉伯文與印度語系等文字中,使不會發生連字的字符間產生連字效果
零寬度斷字符 (zero-width non-joiner) U+200C : 用于阿拉伯文,德文,印度語系等文字中,阻止會發生連字的字符間的連字效果
左至右符 (left-to-right mark) U+200E : 用于在混合文字方向的多種語言文本中(例:混合左至右書寫的英語與右至左書寫的希伯來語),規定排版文字書寫方向為左至右
右至左符 (right-to-left mark) U+200F : 用于在混合文字方向的多種語言文本中,規定排版文字書寫方向為右至左
利用零寬字符不不可見的特性,我們也可以玩出一些騷效果。
發布微博的時候,如果內容都是空格,將沒辦法發布。
但是如果我們將零寬字符,比如說「零寬度空格符 U+200B」復制到微博,這樣我們就可以發布空白微博。
我們可以利用 Chrome 瀏覽器的控制臺復制零寬字符,操作方式如下:
發布效果如下:
真的沒有改 HTML 導致的.jpg
對于一些內部論壇或者說小說網站來說,可以通過零寬字符在帖子或小說內容嵌入隱形水印。
當這些內容被一些爬蟲復制到其他網站時,我們就可以通過隱形水印,輕松查找時那位用戶泄漏內容。
隱形水印主要原理就是將用戶信息比如用戶名,通過一定算法轉成零寬字符,這樣普通用戶瀏覽時完全看不到這個水印。
如果內容被復制到其他網站,隱形誰贏也被復制,只要找到這個水印,將這些零寬字符反轉成用戶名即可。
下面展示一種轉換方法,JS 代碼主要參考以下 Github 項目:
https://github.com/umpox/zero-width-detection
隱形水印生成方法
第一步我們需要將明文字符串每個字符都轉成二進制串。
// 每個字符轉為二進制,用空格分隔
const textToBinary = username => (
username
.split('')
// charCodeAt 將字符轉成相應的 Unicode 碼值
.map(char => char.charCodeAt(0).toString(2))
.join(' ')
);
示例如下:
第二步,將二進制串轉為零度字符串,轉換規則如下:
const binaryToZeroWidth = binary => (
binary.split('').map((binaryNum) => {
const num = parseInt(binaryNum, 10);
if (num === 1) {
return '\u200b'; // \u200b 零寬度字符(zero-width space)
} else if(num===0) {
return '\u200c'; // \u200c 零寬度斷字符(zero-width non-joiner)
}
return '\u200d'; // \u200d 零寬度連字符 (zero-width joiner)
}).join('\ufeff') // \ufeff 零寬度非斷空格符 (zero width no-break space)
);
最終加密方法如下:
const encode = username => {
const binaryUsername = textToBinary(username);
const zeroWidthUsername = binaryToZeroWidth(binaryUsername);
return zeroWidthUsername;
};
使用加密方法將明文字符串加密之后,加密字符串肉眼是看不到了,但是實際還是存在的。
實際上,如果我們將加密之后字符串復制到 BEJSON 網站,就可以看到字符。
image-20200722083507869
另外你還可以把加密字符串復制到 IDEA 中,可以看到相應的 Unicode 編碼值。
解密隱形水印
知道了加密的方式,解密其實就很簡單,我們只要按照相反步驟的來就可以了。
第一步,將隱形水印按照以下規則轉換為二進制串。轉換規則如下:
const zeroWidthToBinary = string => (
string.split('\ufeff').map((char) => { // \ufeff 零寬度非斷空格符 (zero width no-break space)
if (char === '\u200b') { // \u200b 零寬度字符(zero-width space)
return '1';
} else if(char === '\u200c') { // \u200c 零寬度斷字符(zero-width non-joiner)
return '0';
}
return ' ';
}).join('')
);
調用該方法,隱形水印轉成二進制串。
第二步,將二進制再轉為相應的字符。
const binaryToText = string => (
// fromCharCode 二進制轉化
string.split(' ').map(num => String.fromCharCode(parseInt(num, 2))).join('')
);
最終解密方法如下:
const decode = zeroWidthUsername => {
const binaryUsername = zeroWidthToBinary(zeroWidthUsername);
const textUsername = binaryToText(binaryUsername);
return textUsername;
};
解密示例如下:
?
我們常用的短網址,域名后面會跟上一串隨機串,從而實現短網址到長網址的映射。比如以下網址:
https://sourl.cn/iLyn9S
然而我們可以利用零寬字符也可以實現短網址的效果,,比如下面這個網站,就可以生成這類短網址。
https://zws.im/
可以看到這個短網址后面看不到任何字符,實際上這后面跟著一串零寬字符。當瀏覽器訪問該短網址時,后端程序只要反解密的后面零寬字符,拿到相應的網址,然后在做跳轉就可以到指定的網站。
反解密的原理可以參考上面隱形水印的代碼
日常開發過程中,我們有時需要從一些文件中讀取文本內容,然后做相應的處理。
有時候我們可能會碰到一些詭異的現象,比如我們之前碰到的例子。
后臺程序從 Excel 讀取文本內容,然后程序中判斷是讀取的文本內容是否與指定的字符串相等。
然后當我們讀取一份 Excel 內容后,返現這段比較邏輯怎么也通過不了。本來以為是 Excel 內容存在空格什么的,但是打開 Excel 仔細一看,跟指定字符串一模一樣,并沒有什么其他字符。
第一次碰到這種例子,沒有什么經驗,真的排查了很久,到最后都有點懷疑人生了。最后無意間將文本內容復制到了 IDEA 中,才發現整理混雜著零寬字符!
如果各位小伙伴也碰到這類問題,不妨將復制文本內容,然后到 IDEA 中查看是否存在某些看不見字符~
這兩個星期一直很忙,一直都在 9106 的節奏,真的是累,所以斷更了一周!
所幸最近項目提測,稍微輕松了一點,能有點劃水時間來寫寫文章。不過再提起筆來寫文章,就有點斷節奏了!
這篇文章墨跡了很久才水出來,下周開始再次恢復周更的節奏,再忙再累,每周都來一篇。
歡迎各位小伙伴,每周來這里蹲我,Gank 我!!!
好了,我是樓下小黑哥,下周見!!!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。