因此,對程式而言,單一圖形可能比一個字母更長。這在複製、刪除和字元限制方面具有實際意義。讓我們透過三個具體範例來看看哪些元素必須保持在一起。
讓我們與技術人員一起看看
👩💻 序列由女性、連接符和筆記型電腦字元組成。ZWJ 的碼點是 U+200D;它本身不是可見的書寫符號。支援的序列可以由顯示器繪製成單一圖形。然而,在任意字元之間插入 ZWJ 並不會自動產生一個在所有地方都能運作的新 Emoji。來源:Unicode Emoji – Emoji ZWJ Sequences
| 可見範例 | 碼點順序 | 序列的組成部分 |
|---|---|---|
| 👩💻 | U+1F469, U+200D, U+1F4BB | 女性、連接符、筆記型電腦。 |
| 👨🍳 | U+1F468, U+200D, U+1F373 | 男性、連接符、表示烹飪的字元。 |
| 👩🏽💻 | U+1F469, U+1F3FD, U+200D, U+1F4BB | 女性、膚色修飾符、連接符、筆記型電腦。 |
在第三行中,膚色修飾符位於女性字元之後。它執行與連接符不同的任務。例如,👋🏽 揮手手勢包含膚色,但沒有 ZWJ:僅選擇膚色並不會使符號成為 ZWJ 序列。國家旗幟的字母對也由多個元素組成,但遵循不同的連接規則。
「一個字元」意味著什麼?
閱讀時,你可能將程式儲存為多個碼點的內容感知為單一圖形。Unicode 的文字分割規則也處理這類由使用者感知為單一的群組。技術名稱是字素簇。來源:Unicode Text Segmentation
因此,在檢查輸入欄位的長度限制時,請提出三個不同的問題:有多少可見單位,它們由多少碼點組成,以及程式計算哪些單位?如果介面計算的內容與讀者預期不同,「最多十個字元」的標籤提供的資訊很少。
在空白筆記中嘗試:貼上 👩🏽💻 圖形,然後刪除它。它是一次性消失,還是留下了一個人、一台筆記型電腦或一個膚色符號?你可以從編輯器的行為中看出這一點。縮寫重要文字時,也請檢查保留的部分。
為什麼複製時可能會散開?
兩個檢查方向很有用。一個是顯示:相同的完整序列在另一個程式中是否也顯示為多個圖像?另一個是資料:在複製和儲存過程中,序列的元素是否保留?這兩種情況在外觀上可能相似,但需要不同的修正。
首先將完整符號複製到空白筆記中,然後再複製回來。接著嘗試一個簡單的微笑。如果只有複合圖形發生變化,請在錯誤報告中提供具體序列和兩個應用程式的名稱。螢幕截圖顯示外觀,而貼上的文字則允許檢查原始字元。
複製和縮寫時請保持完整
不要在圖形的不可見中間切斷文字。編輯時請選取整個 Emoji,並檢查縮寫後的版本。開發程式時,建議選擇處理使用者感知字元邊界的文字處理,然後使用具體的複合符號進行測試。
發布前的測試應簡單:將一個基本微笑、一個膚色手勢和一個 ZWJ 序列放入測試文字中。檢查儲存、重新載入和刪除。關於 顯示為方塊的 Emoji 和 SMS 字元限制 的指南詳細說明了兩個相關的除錯情境。
帶上重點
三題知識測驗
嘗試應用你讀到的內容。每題選擇一個答案;每個正確答案得一分。評估將針對這三種情況提供回饋,我們不會儲存或發送你的答案。
從解析技術人員開始:女性、ZWJ 和筆記型電腦。
從解析技術人員開始:女性、ZWJ 和筆記型電腦。
檢查哪些組成部分或除錯資料被遺漏了。
在三個情境中,你分別處理了圖形和儲存的序列;試著在筆記中進行複製和刪除。
解答與解釋
- 程式計算的單位與可見圖形的數量不同。 女性、ZWJ 和筆記型電腦這三個碼位共同構成一個可見的圖形。
- 在需要一起顯示的元素之間使用不可見的連接符。 連接符是序列的一部分,要顯示組合圖案還需要顯示支援。
- 可複製的序列、外觀以及受影響的應用程式名稱。 資料和顯示方式共同有助於確定 emoji 在哪裡發生了變化。
計算你的正確答案:每個得一分。跳過的答案得零分。
- 3 分: 在三種情況下,你分別處理了圖形和儲存的序列;請在筆記中嘗試複製和刪除。
- 2 分: 檢查哪個組件或除錯資料遺漏了。
- 0–1 分: 從拆解技術層面開始:女性、ZWJ 和筆記型電腦。
