Swift中字串中含有emoji表情時長度計算不準確的問題
因為Swift的String沒有length方法,所以獲取字串長度是用count,然而OC的NSString用的則是.length獲取長度,在有emoji的情況下,長度取的就不對,導致出現上圖路徑沒有標藍的情況。
附上蘋果的技術文件:
NSString:
String:
Swift的關於計算長度的資料,裡面專門拿emoji出來做了一個例子.png
我的理解是:NSString是由UTF-16單元構成,.length方法返回的是基於UTF-16的長度。Swift的count返回的只是Unicode字元個數,而Swift有專門的utf16.count是對應NSString的.length方法。而addAttribute裡面的Rang對應的應該就是UTF-16的長度,即標藍檔案獲取長度應該用下面的方法:
NSMakeRange(0, pathStr.utf16.count)
相關推薦
Swift中字串中含有emoji表情時長度計算不準確的問題
最近工作中有一個顯示檔案路徑資訊需要標藍顯示,但是在路徑資訊中含有emoji時,發現部分路徑沒有標藍,效果如下:因為Swift的String沒有length方法,所以獲取字串長度是用count,然而OC的NSString用的則是.length獲取長度,在有emoji的情況下,
iOS 判斷字串是否含有Emoji表情-iOS12
iOS 判斷字串是否含有Emoji表情 測試 iOS12 表情. 在蘋果新的表情中, 表情字串長度在1~14位. 以下只命中第一位, 如果發現錯誤命中, 請加入多位判斷. - (BOOL)stringContainsEmoji:(NSString *)string {
判斷EditText輸入的字符串中是否包含有emohi表情
highlight ext || con urn log ring length emoji 我們在實際的開發中經常需要用到EditText 但是有一個不好的地方就是我們在前端用EditText輸入了帶有emoji表情的字符串之後 服務器是無法識別的,這就需要我們前端根據
ABAP非Unicode系統中字串拼接(CONCATENATE)時吃字元問題
系統是老R3,非Unicdoe系統,某些表字段是從外界系統過來的,由於介面設計的固定長度,外界系統傳超長字串過來後,就可能從最後一箇中文字元中間截斷,這問題到還沒什麼,只不過顯示時最後一個字元顯示成亂碼而已,但是,如果將這些表字段撈出來與其它分隔符(如豎線) CONCATENATE時,可能會將
C#中字串中含有\0的問題處理
問題描述 在byte轉換為字串的過程中,如果byte的值為0,則轉換成字串時變為’\0’字元,’\0’字元在C#中意味著字串結束,如果後面再有字元,則讀取字串的程式也不能讀取和顯示出來。 如下圖所示,構造一個位元組陣列,其中含有’\0’字元,在程式執行時通過跟蹤可以看出:
swift 去除字串中首尾位置的空格
var originalStr = " woqu haha " let afterStr = originalStr.trimmingCharacters(in: CharacterSet.whitespaces) // afterStr = "woqu h
使用Swift去掉字串中的空格
筆試面試時經常會出這樣的問題:從某個字串中刪除多餘的空格,因為英文是使用空格進行分詞的,而URL中通常會包括非常多的特殊字元,所以這是一種很常用的做法。和OC中一樣,在swift中也可以使用NSCharacterSet類來實現。對於字串刪空格操作,通常有兩種情況
JS中字串中帶有括號,正則不能識別的解決辦法
需求:將字串中帶有下列關鍵詞的欄位全部高亮顯示 var str = "阿里巴巴(中國)網路技術有限公司深圳辦事處";//字串 var keyword = "阿里巴巴(中國)網路技術有限公司";//關鍵詞 var reg =keyword .replace(/\(/g,"\\(").rep
Linux中編譯C/C++檔案構建時提示找不到引用的函式定義
1、確認應用的檔案是否有編譯,測試方法修改錯檔案中的內容再次編譯看是否報錯 2、如果沒有說明沒有參與編譯,需要修改makefile檔案新增編譯對應檔案生成.o目標檔案。 3、如果發現已經添加了該檔案,還有一種可能就是巨集命名衝突。例如: #ifndef _MONITOR_H_ #defi
mysql儲存 微信暱稱(含有emoji表情) 報錯 解決
做的專案,涉及到儲存微信暱稱、emoji表情,發現這個坑, emoji表情、微信暱稱儲存mysql到utf-8欄位必須要做一下處理。 emoji表情是用4個位元組編碼,蛋疼的mysql版本預設varchar欄位屬於utf-8只能用存進3個位元組編碼的字串內容。 這個時
詳解Python3中字串中的數字提取方法
import re totalCount = '100abc' totalCount = re.sub("\D", "", totalCount) print(totalCount) >>> 100 re.sub(pattern, repl, string,
python中字串中替換處理和轉義
---python 2.7 字串替換函式一般用repalce 1.例項:str ='aaa--bbb' 要替換其中的--- new_str = str.replace('--','') 2. 例項:str1= "aaa/Gbb" 要替換其中的/(斜槓) p
c# 字串拆分 ;c# 中字串中的分號用逗號替換;SQL Server 字串中的分號用逗號替換
1、string[] ids = extData.Split(new char[] { ';' });2、extData.Replace(";", "','"); string.Format(strSQL, extData.Replace(";", "','"))3、1 se
iOS判斷字串是否包含emoji表情
- (BOOL)isContainsEmoji:(NSString *)string { __block BOOL isEomji = NO; [string enumerateSubs
Java中字串中連續相同字元去重
最近參加了一個面試,問到了如何在一個字串中連續相同字元去重,想了想用正則表示式應該可以輕鬆實現。可是由於長時間沒有編碼了,而且由於原先的工作用到的比較少。具體的自己就不會寫正則表示式用到的類名什麼的了。總之就是面試沒有過了。回來再網上搜了搜,本來以為可以很容易找到相應的內容
關於微信emoji 表情數據庫存不了,或者顯示為???的問題
數據庫連接 關於 bsp bubuko 顯示 數據 連接 utf 9.png 必須我utf8mb4,數據庫就可以存 2. 數據庫連接也需要是utf8mb4 關於微信emoji 表情數據庫存不了,或者顯示為???的問題
解決SDCycleScrollView組建遇到UINavigationController時圖片位置不準確
像這樣,在帶有UINavigationController的頁面上圖片總是向下位移一段 解決方法: 在viewDidLoad裡面最先隨便新增一個空View,然後再新增這個外掛: [self.vi
過濾字串中的Emoji表情
iOS 5.0之前,蘋果都是採用3個位元組來承接 emoji 表情,Java 的普通 char 可以支援顯示。但 iOS 5.0 之後, 蘋果升級了系統自帶的 emoji 表情輸入法,用的 Unicode 6 標
java字串中Emoji表情處理
在爬蟲獲取字串內容時,遇到內容中有手機表情,存入資料庫是報錯!網上找了半天,發現好多人不去實驗一下就複製別人的程式碼網上發,然後導致我拿來用直接不行。最終找到一個可以行辦法,在此總結一下: 方法主要有兩個: 第一,修改資料庫字符集: 這種方法需
字串中Emoji表情處理(部落格園遷移)
吃了經驗的虧,因為Emoji表情引起的專案bug被擼主遇到兩次了,總有一些調皮的小朋友愛用表情來搞點事。第一次把當時那個表改為utf8mb4解決了,第二次說啥都不好使。網上找了半天,發現好多人不去實驗一下就複製別人的程式碼網上發,然後導致我拿來用直接不行。最後一遍遍嘗試終