# 字符与 Unicode

URL: https://caijiao.org/go/02-composite/10-unicode
Source: docs/go/02-composite/10-unicode.md
Description: 本节介绍 Go 语言中字符与 Unicode 的基础知识，帮助理解字符编码和多语言支持。

Go 语言中的字符以 Unicode 标准为基础，支持多语言字符集。

## 1. 字符类型（rune）

`rune` 是 Go 中表示单个 Unicode 码点的类型，实际上是 `int32` 的别名。

```go
var ch rune = '中'
fmt.Println(ch)         // 输出：20013（Unicode码点）
fmt.Printf("%c\n", ch)  // 输出：中
````

## 2. Unicode 与字符串

字符串是 UTF-8 编码的字节序列，一个字符可能由多个字节组成。

```go
s := "Hello 中"
fmt.Println(len(s))  // 字节长度
fmt.Println(utf8.RuneCountInString(s))  // 字符数量
```

需要导入 `"unicode/utf8"` 包。

## 3. 遍历字符串

按字符遍历字符串：

```go
for i, r := range s {
    fmt.Printf("%d: %c\n", i, r)
}
```

---

理解字符与 Unicode 有助于正确处理多语言文本和编码转换。
