Package utf8

import "unicode/utf8"
Overview
Index
Examples

Overview ▾

软件包utf8实现了功能和常量以支持以UTF-8编码的文本. 它包括在符文和UTF-8字节序列之间转换的功能.

Constants

编码基本的数字.

const (
    RuneError = '\uFFFD'     // the "error" Rune or "Unicode replacement character"
    RuneSelf  = 0x80         // characters below Runeself are represented as themselves in a single byte.
    MaxRune   = '\U0010FFFF' // Maximum valid Unicode code point.
    UTFMax    = 4            // maximum number of bytes of a UTF-8 encoded Unicode character.
)

func DecodeLastRune

func DecodeLastRune(p []byte) (r rune, size int)

DecodeLastRune在p中解压缩最后一个UTF-8编码,并返回符文及其宽度(以字节为单位). 如果p为空,则返回(RuneError,0). 否则,如果编码无效,则返回(RuneError,1). 对于正确的非空UTF-8,这都是不可能的结果.

如果编码不正确,则它是无效的UTF-8,对超出范围或不是该值的最短UTF-8编码的符文进行编码. 不执行其他任何验证.

Example

界 3
世 3
  1
, 1
o 1
l 1
l 1
e 1
H 1

func DecodeLastRuneInString

func DecodeLastRuneInString(s string) (r rune, size int)

DecodeLastRuneInString类似于DecodeLastRune,但其输入是字符串. 如果s为空,则返回(RuneError,0). 否则,如果编码无效,则返回(RuneError,1). 对于正确的非空UTF-8,这都是不可能的结果.

如果编码不正确,则它是无效的UTF-8,对超出范围或不是该值的最短UTF-8编码的符文进行编码. 不执行其他任何验证.

Example

界 3
世 3
  1
, 1
o 1
l 1
l 1
e 1
H 1

func DecodeRune

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

DecodeRune在p中解压缩第一个UTF-8编码,并返回符文及其宽度(以字节为单位). 如果p为空,则返回(RuneError,0). 否则,如果编码无效,则返回(RuneError,1). 对于正确的非空UTF-8,这都是不可能的结果.

如果编码不正确,则它是无效的UTF-8,对超出范围或不是该值的最短UTF-8编码的符文进行编码. 不执行其他任何验证.

Example

H 1
e 1
l 1
l 1
o 1
, 1
  1
世 3
界 3

func DecodeRuneInString

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

DecodeRuneInString类似于DecodeRune,但其输入是字符串. 如果s为空,则返回(RuneError,0). 否则,如果编码无效,则返回(RuneError,1). 对于正确的非空UTF-8,这都是不可能的结果.

如果编码不正确,则它是无效的UTF-8,对超出范围或不是该值的最短UTF-8编码的符文进行编码. 不执行其他任何验证.

Example

H 1
e 1
l 1
l 1
o 1
, 1
  1
世 3
界 3

func EncodeRune

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

EncodeRune将符文的UTF-8编码写入p(必须足够大). 它返回写入的字节数.

Example

[228 184 150]
3

func FullRune

func FullRune(p []byte) bool

FullRune reports whether the bytes in p begin with a full UTF-8 encoding of a rune. An invalid encoding is considered a full Rune since it will convert as a width-1 error rune.

Example

true
false

func FullRuneInString

func FullRuneInString(s string) bool

FullRuneInString类似于FullRune,但其输入是字符串.

Example

true
false

func RuneCount

func RuneCount(p []byte) int

RuneCount返回p中的符文数. 错误和短编码被视为宽度为1字节的单个符文.

Example

bytes = 13
runes = 9

func RuneCountInString

func RuneCountInString(s string) (n int)

RuneCountInString类似于RuneCount,但其输入是字符串.

Example

bytes = 13
runes = 9

func RuneLen

func RuneLen(r rune) int

RuneLen返回编码符文所需的字节数. 如果该符文不是以UTF-8编码的有效值,则返回-1.

Example

1
3

func RuneStart

func RuneStart(b byte) bool

RuneStart报告该字节是否可能是编码的,可能无效的符文的第一个字节. 第二个和后续字节始终将高两位设置为10.

Example

true
true
false

func Valid

func Valid(p []byte) bool

有效报告p是否完全由有效的UTF-8编码的符文组成.

Example

true
false

func ValidRune 1.1

func ValidRune(r rune) bool

ValidRune报告r是否可以合法编码为UTF-8. 超出范围或替代一半的代码点是非法的.

Example

true
false

func ValidString

func ValidString(s string) bool

ValidString报告s是否完全由有效的UTF-8编码的符文组成.

Example

true
false

by  ICOPY.SITE