[C#] 關於 emoji 取得 length 問題,關於分別取出 .ToArray() 的問題

2021-10-21


最近因為專案的一些需求,需要用到 Emoji ,這東西在各平台渲染出來的都不一樣,我相信大家都知道這些事情就不多說了,主要是因為遇到一個問題,處理起來讓我意外,再加上混和中文或是英文的時候,就有一點點跟我想的不一樣 舉理來說  "許1d"  這字串,其中你覺的應該有幾個字呢?




我們來 寫 code 測試看看



後來我發現,其實沒有這麼簡單,因為你理解會是七個字,印出來卻是 11 ,至於原因,下面 reference 可以去找詳細原因,這邊我就是專心地貼解決方案就好了.

要如何拿到 我們理解的 7 個字


C# code:


再來一個問題就是,如果我要去得裡面的字呢? 習慣我會直接直接 .ToArray() ,但是這樣結果會變成

C# code:


這時候,要如何把他們列舉印出來

C# code:

主要就測試到這邊,因為跟我想像的有點不同,紀錄一下測試結果,有需要的話可以看下方連結,觀念解釋得很清楚,主要我這邊是用 asp + .net core 3.1 ,測試一下,順手有專案開著就用了沒有使用 console


result:



reference:

https://schneids.net/emojis-and-string-length

https://www.cnblogs.com/sdflysha/p/20191026-split-string-to-character-list.html


當麻許的超技八 2014 | Donma Hsu Design.