はじめに 以下は、@tak777 さんの【Java】文字列を一文字ずつ切り出しする方法という記事に書かれた、@saka1029 さんの以下のコメントです。 Javaのchar型は16ビットですが、Unicodeの文字集合の符号空間は0x0から0x10FFFFで16ビットを超えます。 Javaは内部コードとしてUTF-16という符号化方式を採用していて、16ビットを超える文字はchar2個で1文字を表現します。 例えば「𩸽(ほっけ)」のUnicode番号は0x29E3Dであり、Javaでは0xD867と0xDE3Dの連続した2個のcharから構成されます。 記事にあるコードでは1文字の半分を切り出してしまう可能性があることに注意する必要があります。 このコメントを読んで、サロゲートペアを用いて表された文字だとtoCharArrayメソッドがどのような結果になるのかが気になったので、実際に検