ホームページ >バックエンド開発 >Golang >golangで文字列変換を実装する方法

golangで文字列変換を実装する方法

PHPz
PHPzオリジナル
2023-04-11 09:13:561112ブラウズ

近年、プログラマーの間で Go 言語 (golang) の人気が高まっています。一般的なプログラミング言語として、他の言語と同様にさまざまなデータ型と構造をサポートします。 Golang には、文字列を処理する際の強力な機能もいくつかあります。この記事では、golang で文字列エンコード機能を実装する方法に焦点を当てます。

golang 組み込みライブラリには、多くの文字列のエンコードとデコードのサポートを提供する、encoding と呼ばれるパッケージがあります。文字列エンコードを扱う場合、最も重要なことは文字エンコードの概念を理解することです。文字エンコーディングは、人間が使用する文字を、コンピューターが理解して処理できるバイナリ値に変換するために導入されました。文字エンコーディングの重要な用途は、さまざまな言語環境での文字の表示と格納の問題を解決することです。

golang では、一般的な文字エンコーディングには ASCII、UTF-8、UTF-16、GBK、GB2312 などが含まれます。以下、文字列変換の実装方法を一つ一つ紹介していきます。

  1. ASCII エンコード

ASCII (American Standard Code for Information Interchange) は、7 ビットのバイナリ文字エンコードです。これは最も初期の最も基本的な文字エンコーディングの 1 つで、英語の文字、数字、およびいくつかの句読点のみを含みます。 golang では、ASCII エンコーディングが広く使用されており、文字列で直接使用できます。

たとえば、文字列を ASCII エンコードに変換する場合、コードは次のとおりです。

package main

import (
    "fmt"
)

func main() {
    str := "hello world"
    strAscii := []byte(str) // 转为 ASCII 编码
    fmt.Println(strAscii)   // [104 101 108 108 111 32 119 111 114 108 100]
}
  1. UTF-8 エンコード

UTF-8 ( UCS 転送フォーマット -8) は、すべての Unicode 文字をサポートする可変長文字エンコーディングです。 golang では、UTF-8 エンコーディングがデフォルトで使用されるエンコーディング方法です。たとえば、次のように、golang の組み込みライブラリの関数を直接使用できます:

package main

import (
    "fmt"
)

func main() {
    str := "UTF-8编码测试"
    strUtf8 := []byte(str) // 转为 UTF-8 编码
    fmt.Println(strUtf8)   // [85 84 70 45 56 231 154 132 49 229 133 172 229 143 184 227 131 163]
}
  1. UTF-16 エンコーディング

UTF-16 は、各 Unicode 文字を 2 バイトで表す固定長の文字エンコーディングで、通常、中国語、日本語、韓国語などのアジア言語で使用されます。 golang では、組み込みのエンコード パッケージを使用して、文字列と UTF-16 エンコードの間で変換できます。例:

package main

import (
    "fmt"
    "unicode/utf16"
)

func main() {
    str := "中国加油"
    strUtf16 := utf16.Encode([]rune(str)) // 转为 UTF-16 编码
    fmt.Println(strUtf16) // [20013 22269 39532 32423]
}
  1. GBK エンコード

GBK はい 拡張主に中国語ドメイン向けの、中国語の文字エンコーディングの文字セット。オリジナルの GB2312 中国語文字エンコーディングと比較して、GBK はより多くの文字セットを追加して、より広範囲の言語環境をサポートします。 golang では、文字列と GBK エンコーディングの間の変換は、組み込みのエンコーディング パッケージを使用して実現できます。例:

package main

import (
    "fmt"
    "golang.org/x/text/encoding/simplifiedchinese"
)

func main() {
    str := "我的世界"
    strGbk, _ := simplifiedchinese.GBK.NewEncoder().Bytes([]byte(str)) // 转为 GBK 编码
    fmt.Println(strGbk) // [25105 30340 19978 30028]
}

上記の例を通じて、golang で文字列エンコーディングを実装する機能を知ることができます。非常に簡単です。 。上記のエンコード方法に加えて、golang は、base64 などの他のさまざまなエンコード方法もサポートしています。 Golang プログラマーにとって、文字列関連の知識をより深く理解するには、これらのことを学ぶことが必須です。

以上がgolangで文字列変換を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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