C# で文字列を1文字ずつ(書記素単位で)分割する方法

サロゲートペアの文字が分割されてしまうということでしょうか。
下記が参考になるかもしれません。

■ 文字列を1文字ずつ解析するには?(サロゲート文字対応)[C#、VB] - @IT
https://atmarkit.itmedia.co.jp/fdotnet/dotnettips/732parsechars/parsechars.html

csharp

1string moji = "🍎 and 🍏";2 3// テキスト要素を列挙するオブジェクトを取得4TextElementEnumerator charEnum = StringInfo.GetTextElementEnumerator(moji);5 6while (charEnum.MoveNext())7{8 // 1文字ずつ処理する9 Console.WriteLine(charEnum.Current);10}

コマンドプロンプトで実行する際は、

chcp 65001

で、コマンドプロンプトの文字コードを Unicode に変更してから実行ください。

コメントを投稿

0 コメント