Maison >développement back-end >Golang >golang cmd code tronqué

golang cmd code tronqué

WBOY
WBOYoriginal
2023-05-21 14:32:37654parcourir

Avec la popularité croissante du golang en Chine, de plus en plus de développeurs novices ont commencé à entrer en contact avec ce langage et ont rencontré divers problèmes dans la pratique. L'un des problèmes courants est le problème des caractères chinois tronqués dans Golang cmd.

Dans Golang, compiler et exécuter des programmes via la ligne de commande cmd est une opération très courante. Cependant, vous pouvez rencontrer certains problèmes pendant le fonctionnement, tels que :

  1. cmd la console affiche des caractères chinois tronqués et les résultats de sortie ne peuvent pas être visualisés correctement
  2. When ; appeler d'autres programmes, les paramètres chinois ne peuvent pas être transmis correctement, etc.

Pour ces problèmes, nous donnerons des solutions ci-dessous.

  1. Définir l'encodage de la console

Tout d'abord, nous devons confirmer la méthode d'encodage de la console cmd, qui peut être définie via ce qui suit étapes : #🎜 🎜#

Ouvrez la console cmd, cliquez avec le bouton droit sur le titre de la fenêtre, sélectionnez "Propriétés" -> "Options" -> "Options locales", sélectionnez "Chinois (simplifié, Chine)" dans la liste déroulante "Langue" ou d'autres langues prenant en charge le chinois, puis cliquez sur OK.

Après avoir confirmé les paramètres, nous devons spécifier la méthode d'encodage dans le programme pour garantir l'exactitude de la sortie de la console.

Exemple de code :

package main

import (
    "fmt"
    "os"
    "github.com/axgle/mahonia"
)

func main() {
    // 创建一个utf8编码的文本
    s := "中文"
    
    // 定义一个gbk编码器
    dec := mahonia.NewEncoder("gbk")
    
    // 将utf8编码的文本转换成gbk编码
    result := dec.ConvertString(s)
    
    // 输出到控制台
    fmt.Println(result)
    
    // 将gbk编码的文本写入文件
    file, _ := os.Create("test.txt")
    defer file.Close()

    file.WriteString(result)
}

Dans le code ci-dessus, nous utilisons la bibliothèque mahonia pour convertir le texte codé en utf8 (encodage par défaut golang) en encodage gbk, garantissant ainsi que la sortie est correcte .

    Utilisez le format gbk pour appeler d'autres programmes
Lors de l'appel d'autres programmes, nous devons faire attention à savoir si l'encodage du programme est le identique à l'encodage de la console cmd De la même manière. Par exemple, si nous voulons utiliser os pour exécuter une commande et transmettre des paramètres chinois, nous devons alors convertir les paramètres en codage gbk pour garantir une transmission correcte.

Exemple de code :

package main

import (
    "os"
    "github.com/axgle/mahonia"
)

func main() {
    // 定义一个gbk编码器
    dec := mahonia.NewEncoder("gbk")
    
    // 将utf8编码的文本转换成gbk编码
    cmdStr := dec.ConvertString("notepad 中文.txt")
    
    // 执行命令
    cmd := exec.Command("cmd.exe", "/c", cmdStr)
    cmd.Run()
}

Dans le code ci-dessus, nous utilisons la bibliothèque mahonia pour convertir les paramètres de commande de l'encodage utf8 en encodage gbk, puis appelons cmd.exe via os pour exécuter la commande pour garantir que les paramètres chinois sont transmis correctement.

Résumé :

Grâce aux deux méthodes ci-dessus, nous pouvons résoudre le problème des caractères chinois tronqués dans golang cmd. Dans le développement réel, nous devons choisir la méthode appropriée pour le résoudre en fonction de nos propres besoins.

Dans le même temps, nous devrions activement signaler ce problème au responsable de Golang, en espérant qu'il pourra obtenir une meilleure solution dans les futures mises à niveau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:golang modifier jsonArticle suivant:golang modifier json