import "utf8"

UTF-8エンコードされたテキストをサポートする関数および定数です。このパッケージでは「Unicode文字」のことを「ルーン」と呼んでいます。

パッケージファイル

utf8.go

定数

エンコーディングに関する基本的な値です。

const (
    RuneError = unicode.ReplacementChar // エラーを表すルーンで、"replacement character"
    RuneSelf  = 0x80                    // Runeselfより小さい値は1バイト長のルーン
    UTFMax    = 4                       // UTF-8エンコードされたUnicode文字の最大バイト長
)

DecodeRune関数

func DecodeRune(p []byte) (rune, size int)

DecodeRuneは、パラメータpの最初のUTF-8エンコード一文字をルーンに変換し、バイト長とともに返します。

DecodeRuneInString関数

func DecodeRuneInString(s string) (rune, size int)

DecodeRuneInString は、DecodeRuneと同じですが、入力パラメータは文字列です。

EncodeRune関数

func EncodeRune(rune int, p []byte) int

EncodeRuneは、ルーンをUTF-8エンコードでパラメータp(充分なサイズが必要)に書き込みます。この関数は書き込んだバイト数を返します。

FullRune関数

func FullRune(p []byte) bool

FullRuneは、パラメータpのバイト列が、ルーンの完全なUTF-8エンコーディングで始まっているかどうかを返します。エンコーディングが不正なときは、サイズ-1のエラールーンとみなされるために完全なルーンであると判断されます。

FullRuneInString関数

func FullRuneInString(s string) bool

FullRuneInStringは、FullRuneと同じですが、入力パラメータは文字列です。

RuneCount関数

func RuneCount(p []byte) int

RuneCountは、パラメータp内のルーン数を返します。エラーや欠落したエンコードは1バイトのルーンとしてカウントされます。

RuneCountInString関数

func RuneCountInString(s string) (n int)

RuneCountInStringは、RuneCountと同じですが、入力パラメータは文字列です。

RuneLen関数

func RuneLen(rune int) int

RuneLenは、ルーンのエンコードに必要なバイト数を返します。

RuneStart関数

func RuneStart(b byte) bool

RuneStartは、パラメータbで指定した1バイトが、ルーンの先頭1バイトと成り得るか判断します。2番目または、それ以降のバイトデータは先頭2ビットは常に”10″です。