Rust ツアー 目次

utf-8とは

様々な言語がコンピュター上で使われるようになるに連れて, ASCIIで許可されている以上のテキスト文字を表現する必要が出てきました。(ASCIIで許可されているのは1バイト、つまり256文字です)

utf-8 は1~4バイトの可変バイト長で導入され、それによって表現可能な文字の範囲が大幅に広がりました。

可変サイズ文字の利点として挙げられるのは、テキストが非常に一般的なASCIIのための不要なバイトを持たなかったことです。(utf-8 で必要とされるのはたった1バイトです)

可変サイズの文字の欠点として挙げられるのは、簡単なインデキシング(例:4番目の文字を取得するために my_text[3] を使用すること)における文字の検索が(O(1) 定数時間で)素早くできなくなることです。すぐ前にある文字が可変幅を持つことで、4番目の文字がバイト列のどこから実際に始まるのかが変わってしまう可能性があります。

その代わり、Unicode文字が実際にどこから始まるのかを知るために utf-8 バイトのシーケンスを繰り返さなければなりません。(計算量は線形時間 O(n)

Ferris「水中にいるお友達の絵文字を表現するのに utf-8 があると嬉しいね!」

🐠🐙🐟🐬🐋