在 Go 中將 ANSI 文字轉換為 UTF-8
在 Go 中,所有字串都以 UTF-8 格式儲存。但是,您可能會遇到需要將使用不同字元編碼的 ANSI 文字轉換為 UTF-8 的情況。以下是實現此目的的方法:
根據 Go 語言規範,所有字串在內部都以 UTF-8 方式處理。因此,不需要顯式轉換。如果你有一個表示ANSI 文字的位元組數組,則可以簡單地使用以下程式碼片段將其轉換為Go 字串:
import ( "bytes" "unicode/utf8" ) func convertANSItoUTF8(ansiBytes []byte) string { reader := bytes.NewReader(ansiBytes) decoder := utf8.RuneReader(reader) var utf8String []rune for { r, size, err := decoder.ReadRune() if err != nil { break } utf8String = append(utf8String, r) } return string(utf8String) }
此函數使用utf8.RuneReader 函數迭代ANSI 位元組並轉換將它們轉換為UTF-8 符文。然後將符文附加到切片,最後將其轉換為 UTF-8 字串。
注意: 此函數假設 ANSI 輸入有效。如果存在任何無效序列,則函數的行為未定義。
以上是如何在 Go 中將 ANSI 文字轉換為 UTF-8?的詳細內容。更多資訊請關注PHP中文網其他相關文章!