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 中国語 Web サイトの他の関連記事を参照してください。