Go-Sprache ist eine moderne Programmiersprache mit Effizienz, Parallelität und Portabilität. In praktischen Anwendungen ist es häufig notwendig, sich mit Konvertierungsproblemen zwischen verschiedenen Kodierungen zu befassen. In diesem Artikel wird die Kodierungskonvertierungslösung in Golang vorgestellt.
In Computern werden Zeichen oft als digitale Kodierungen dargestellt, wie zum Beispiel ASCII-Code, GB2312, UTF-8 usw. Die Zeichenzuordnungsbeziehungen zwischen verschiedenen Kodierungen sind unterschiedlich, was auch zu ihren jeweiligen Mängeln und Vorteilen führt.
ASCII-Code ist eine häufig verwendete Kodierungsmethode. Er kann nur 128 Zeichen darstellen, einschließlich Groß- und Kleinbuchstaben, Zahlen und einigen Sonderzeichen, was seine Anwendung bei der Internationalisierung einschränkt. GB2312 ist eine Kodierungsmethode für chinesische Zeichen, die etwa 7.000 chinesische Zeichen darstellen kann, aber nur in China beliebt ist. Ebenso ist die UTF-8-Kodierung eine häufig verwendete Kodierungsmethode. Sie kann Zeichen weltweit darstellen, hat jedoch den Nachteil, dass bei der Verarbeitung ostasiatischer Sprachen die Anzahl der Bytes höher ist als bei GB2312 oder GB18030.
Daher ist eine Konvertierung zwischen verschiedenen Kodierungen erforderlich, um in den entsprechenden Szenarien verwendet zu werden.
Die Standardbibliothek von Golang bietet Codierungs- und Unicode-Pakete, die zur Behandlung von Problemen im Zusammenhang mit der Codierung bzw. im Zusammenhang mit Unicode-Codepunkten verwendet werden.
In Golang werden Zeichen als Runentypen dargestellt und Zeichenfolgen bestehen aus einer Reihe von Runentypen. Im Folgenden werden häufig verwendete Codierungskonvertierungsfunktionen und Beispiele in Golang vorgestellt.
2.1 Kodierungskonvertierungsfunktion in Golang
2.1.1 Bytes-Paket
Bytes-Paket bietet einige Funktionen zum Lesen und Schreiben von Binärdaten, von denen einige speziell zum Parsen und Serialisieren von Zeichenfolgen verwendet werden.
Funktionsnamensfunktion
func ToUpperSpecial wandelt die Zeichenfolge in Großbuchstaben um und unterstützt benutzerdefiniertes Locale.
func ToLowerSpecial wandelt die Zeichenfolge in Kleinbuchstaben um. Unterstützt benutzerdefiniertes Locale die Zeichenfolge in Großbuchstaben umwandeln
func ToLower Wandelt die Zeichenfolge in Kleinbuchstaben um
func ToTitle Wandelt die Zeichenfolge in das Titelformat um
func Title Wandelt die gesamte Zeichenfolge in das Titelformat um
func TrimSpace Entferne Zeichen und Leerzeichen am Anfang und Ende der Zeichenfolge
func Trim Entfernt die angegebenen Zeichen am Anfang und Ende der Zeichenfolge.
func TrimFunc Entfernt die angegebene Funktion am Anfang und Ende der Zeichenfolge.
func TrimLeftFunc Entfernt die angegebene Funktion auf der linken Seite der Zeichenfolge.
func TrimRightFunc Entfernen Sie die angegebene Funktion auf der rechten Seite der Zeichenfolge
func HasPrefix Bestimmt, ob die Zeichenfolge das angegebene Präfix enthält
func HasSuffix Bestimmt, ob die Zeichenfolge das angegebene Suffix enthält
func Index Gibt die Position des ersten Vorkommens der angegebenen Teilzeichenfolge zurück in der Zeichenfolge
func LastIndex Gibt das letzte Vorkommen der angegebenen Teilzeichenfolge in der Zeichenfolge zurück. Die Position der Zeichenfolge.
func IndexFunc Gibt die Position des ersten Zeichens zurück, das die angegebenen Bedingungen in der Zeichenfolge erfüllt.
func LastIndexFunc Gibt die Position von zurück das letzte Zeichen, das die angegebenen Bedingungen in der Zeichenfolge erfüllt
func IndexByte Gibt die erste Position in der Zeichenfolge zurück. Die Position, an der das angegebene Zeichen erscheint.
func LastIndexByte Gibt die Position zurück, an der das angegebene Zeichen das letzte Mal in der Zeichenfolge vorkommt.
func Count Gibt zurück, wie oft die angegebene Teilzeichenfolge in der Zeichenfolge vorkommt.
func Ersetzen Ersetzt die angegebene Teilzeichenfolge in der Zeichenfolge durch eine andere. Zeichenfolge.
func entsprechend dem angegebenen Trennzeichen
func SplitN Teilen Sie die Zeichenfolge gemäß dem angegebenen Trennzeichen in Slices auf, bis zu N-mal aufteilen
func SplitAfter Teilen Sie die Zeichenfolge gemäß dem angegebenen Suffix in Slices auf, das Suffix ist in jeder Teilzeichenfolge enthalten
func SplitAfterN Teilen Sie die Zeichenfolge gemäß dem angegebenen Suffix in Slices auf. Das Suffix ist in jeder Teilzeichenfolge enthalten und wird höchstens N-mal aufgeteilt.
func Join führt die String-Slices gemäß der angegebenen Trennung zu einer Zeichenfolge zusammen
2.1.2 Kodierungspaket
Kodierungspaket bietet eine Reihe von Funktionen zum Kodieren und Dekodieren verschiedener Zeichenkodierungsmethoden wie UTF-8, GB2312 usw.
Funktionsname Funktion
func Decode Dekodieren Sie vom angegebenen Kodierungsbyte-Slice in ein Runen-Slice im UTF-8-Format.
func DecodeRune Dekodieren Sie vom angegebenen Kodierungsbyte-Slice in eine einzelne Rune.
func DecodeLastRune Dekodieren Sie vom angegebenen Kodierungsbyte Dekodiere die letzte Rune im Slice
func Encode Konvertiere das Runen-Slice in ein Byte-Slice der angegebenen Kodierung
func RuneCount Berechne die Anzahl der Runen im Runen-Slice
func Runes Dekodiere das angegebene Codierungs-Byte-Slice in ein Runen-Slice
2.1.3 Unicode-Paket
Das Unicode-Paket bietet einige Funktionen, um festzustellen, ob es sich bei einem Zeichen um eine Zahl, einen Buchstaben usw. handelt.
Funktionsname Funktion
func IsDigit Bestimmt, ob das Zeichen eine Zahl ist
func IsLetter Bestimmt, ob das Zeichen ein Buchstabe ist
func IsLower Bestimmt, ob das Zeichen ein Kleinbuchstabe ist.
func IsUpper. Bestimmt, ob das Zeichen ein Großbuchstabe ist.
func IsPunct. Bestimmt, ob das Zeichen ein Satzzeichen ist 2.2 Codekonvertierungsbeispiel in Golang
Hier sind einige Kodierungskonvertierungsbeispiele in Golang:
2.2.1 UTF-8-Kodierung in GB2312
Beispiel 1: Verwenden Sie das Kodierungspaket von Golang, um zwischen UTF-8-Kodierung und GB2312-Kodierung zu konvertieren.
package main import ( "fmt" "github.com/axgle/mahonia" ) func main() { str := "你好,世界!" enc := mahonia.NewEncoder("GB2312") newStr := enc.ConvertString(str) fmt.Println(newStr) }
2.2.2 GB2312-Kodierung in UTF-8 konvertieren
Beispiel 2: Verwenden Sie das Kodierungspaket von Golang, um zwischen GB2312-Kodierung und UTF-8-Kodierung zu konvertieren.
package main import ( "fmt" "github.com/axgle/mahonia" ) func main() { str := "你好,世界!" dec := mahonia.NewDecoder("GB2312") newStr := dec.ConvertString(str) fmt.Println(newStr) }
Das obige ist der detaillierte Inhalt vonKonvertierung der Golang-Codierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!