go语言实现UTF8与GB2312内码转换

server/2025/1/16 8:06:29/

使用Go语言做个UTF-8转GB2312的代码,输入utf-8编码的文本,输出转换后的国标编码的hex内码

package mainimport ("fmt""os""strings""golang.org/x/text/encoding/simplifiedchinese""golang.org/x/text/transform"
)// convertEncoding 将指定编码的文本转换为目标编码的文本
func convertEncoding(text, from, to string) (string, error) {var encoder transform.Transformerswitch to {case "GB2312":encoder = simplifiedchinese.GB18030.NewEncoder() // 使用 GB18030 转换器default:return "", fmt.Errorf("不支持的目标编码:%s", to)}// 读取原始编码的文本内容originalBytes := []byte(text)// 使用转换器对原始编码的文本进行编码转换convertedBytes, _, err := transform.Bytes(encoder, originalBytes)if err != nil {return "", fmt.Errorf("编码转换失败:%w", err)}// 将转换后的字节切片转换为十六进制字符串var hexString strings.Builderfor _, b := range convertedBytes {hexString.WriteString(fmt.Sprintf("%02X ", b))}return hexString.String(), nil
}func main() {// 从命令行参数获取UTF-8编码的文本if len(os.Args) < 2 {fmt.Println("请提供UTF-8编码的文本作为参数")return}utf8Text := strings.Join(os.Args[1:], " ")// 将UTF-8编码的文本转换为GB2312编码gb2312Hex, err := convertEncoding(utf8Text, "UTF-8", "GB2312")if err != nil {fmt.Println("编码转换失败:", err)return}// 输出转换后的GB2312编码文本的十六进制形式fmt.Println("转换后的GB2312编码文本的十六进制形式:")fmt.Println(gb2312Hex)
}

编译运行

go mod init
go mod tidy
go build 
./iconv 测试
转换后的GB2312编码文本的十六进制形式:
B2 E2 CA D4

http://www.ppmy.cn/server/158771.html

相关文章

AI大模型开发—1、百度的千帆大模型调用(文心一言的底层模型,ENRIE等系列)、API文档目的地

文章目录 前言一、千帆大模型平台简介二、百度平台官网初使用1、平台注册和使用2、应用注册 并 申请密钥3、开启千帆大模型 API调用a、API文档b、 前言 本章旨在为读者奉献一份实用的操作指南&#xff0c;深入探索如何高效利用百度千帆大模型平台的卓越功能。我们将从账号注册…

网络精英赛模拟练习

1、 会话侦听与劫持技术属于&#xff08;&#xff09;技术。 &#xff08;单选题&#xff0c;1分&#xff09; A. 密码分析还原 B. 协议漏洞渗透 C. 应用漏洞分析与渗透 D. DOS攻击 回答正确(得分: 1分) 正确答案 B 解析 会话侦听与劫持技术属于协议漏洞渗透技术。 2、 溢…

JAVA实现捡金币闯关小游戏(附源码)

文章目录 一、设计来源捡金币闯关小游戏讲解1.1 主界面1.2 关卡效果1界面1.3 关卡效果2界面1.4 关卡效果3界面1.5 失败界面1.6 通关界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载更多优质源码分享 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/w…

【LLM】Prompt_tuning 预训练方式

文章目录 4 Prompt-Tuning4.1 NLP任务四种范式4.2 Prompt-Tuning 提示微调4.3 PET模型4.4 Hard Prompt & Soft Prompt4.5 Prompt Tuning4.6 P-tuning (NLU任务) 5 超大规模参数模型Prompt-Tuning方法5.1 In-context Learning 上下文学习方法的应用5.2 Instruction-Tuning 指…

【STM32】HAL库USB实现软件升级DFU的功能操作及配置

【STM32】HAL库USB实现软件升级DFU的功能操作及配置 文章目录 DFUHAL库的DFU配置修改代码添加条件判断和跳转代码段DFU烧录附录&#xff1a;Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作位带代码位带宏…

原生html、vue、uview-plus实现 input输入框电话号码3-4-4形式分隔

文章目录 原生html写inputvue写inputuview-plus input组件 原生html写input 通过oninput事件实现 <!-- html --> <input type"text" id"phoneNumber" oninput"formatPhoneNumber(this)" /><script>function formatPhoneNumb…

BTC系列 - 启示录

推荐《区块链启示录&#xff1a;中本聪文集》这本书, 原来早在2010年, BTC生态还不完善的时候, 社区中就已经畅想出了未来其它链上的特色方案, 中本聪也都一一做了教父级回应: coinbase币的成熟时间, 交易池, 交易确认机制, 防51%攻击, 防双重消费, 水龙头, 轻量级客户端, 链上…

unity学习17:unity里的旋转学习,欧拉角,四元数等

目录 1 三维空间里的旋转与欧拉角&#xff0c;四元数 1.1 欧拉角比较符合直观 1.2 四元数 1.3 下面是欧拉角和四元数的一些参考文章 2 关于旋转的这些知识点 2.1 使用euler欧拉角旋转 2.2 使用quaternion四元数,w,x,y,z 2.3 使用quaternion四元数,类 Vector3.zero 这种…