CMD下执行Go出现中文乱码的解决方法是什么
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,CMD下执行Go出现中文乱码的解决方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、报错信息如下2、原因分析因为Go的编码是U
千家信息网最后更新 2025年11月08日CMD下执行Go出现中文乱码的解决方法是什么
CMD下执行Go出现中文乱码的解决方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
1、报错信息如下

2、原因分析
因为Go的编码是UTF-8,而CMD的活动页是cp936(GBK),因此产生乱码。在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容。在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者英文字符集。
3、解决方法
golang处理中文时默认是utf8,当遇到其他如GBK字符是就会出现乱码,此处介绍golang 官方golang.org/x/text/encoding/simplifiedchinese包下的编码转换
simplifiedchinese.GB18030.NewDecoder().Bytes()
4、封装处理乱码方法
package mainimport "golang.org/x/text/encoding/simplifiedchinese"type Charset stringconst ( UTF8 = Charset("UTF-8") GB18030 = Charset("GB18030"))func ConvertByte2String(byte []byte, charset Charset) string { var str string switch charset { case GB18030: decodeBytes, _ := simplifiedchinese.GB18030.NewDecoder().Bytes(byte) str = string(decodeBytes) case UTF8: fallthrough default: str = string(byte) } return str}5、解决乱码完整代码
package mainimport ( "bytes" "fmt" "golang.org/x/text/encoding/simplifiedchinese" "os" "os/exec")type Charset stringconst ( UTF8 = Charset("UTF-8") GB18030 = Charset("GB18030"))func ConvertByte2String(byte []byte, charset Charset) string { var str string switch charset { case GB18030: decodeBytes, _ := simplifiedchinese.GB18030.NewDecoder().Bytes(byte) str = string(decodeBytes) case UTF8: fallthrough default: str = string(byte) } return str}//arg 执行的bat文件完整路径//返回错误信息及消息提示func ExecCommand(arg string) (error, string) { c := exec.Command("cmd", "/C", arg) w := bytes.NewBuffer(nil) c.Stderr = w message := "执行" + arg + "文件抽取数据成功" _, err1 := os.Stat(arg) var err error //判断文件是否存在 if err1 != nil { err := c.Run() if err != nil { fmt.Printf("Run returns: %s\n", err) } //处理中文乱码 garbledStr := ConvertByte2String(w.Bytes(), GB18030) message = err1.Error() + garbledStr //文件不存在并且执行报错 return err, message } else { err = c.Run() if err != nil { //处理中文乱码 garbledStr := ConvertByte2String(w.Bytes(), GB18030) //文件存在 但执行bat文件报错 return err, garbledStr } } //文件存在并且执行bat文件成功 return err, message}看完上述内容,你们掌握CMD下执行Go出现中文乱码的解决方法是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
文件
乱码
中文
方法
编码
UTF-8
处理
内容
字符
成功
代码
信息
原因
命令
字符集
更多
问题
束手无策
为此
原因分析
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
邮件服务器安全方案
绝地求生各种服务器的翻译
监狱网络安全管理干嘛
软件开发男的是什么样的人
嘉定区软件开发项目管理
曹妃甸区企业网络技术售后保障
天枢中西部网络安全
企业存储服务器哪个好
南通网络安全演练
天搜科技移动互联网创新论坛
软件开发实际税负超过百分之三
软件开发都有哪些阶段
美国主流报纸数据库
一个服务器可以接多少网线
网吧服务器管理软件
数据库管理系统位于
设备网络安全管理工作情况
深圳腾讯红包软件开发
全国牌具软件开发总部
美国网络安全宣传片
腾讯公司软件开发模型
安防网络技术云班课测试答案
网络安全审查办法的法律依据
龙江人社服务器返回数据格式
软件开发项目绩效统计
精选 网络安全
三河网络安全保卫大队
数据库查询并给字段名字
oracle数据库解释
nis服务器如何增加用户