ホームページ >バックエンド開発 >Golang >Go で ANSI テキストを UTF-8 に変換するにはどうすればよいですか?

Go で ANSI テキストを UTF-8 に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-26 13:48:10786ブラウズ

How to Convert ANSI Text to UTF-8 in Go?

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。