教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Go 中文和unicode字符之间转换

Go 中文和unicode字符之间转换

发布时间:2022-03-02   编辑:jiaochengji.com
教程集为您提供Go 中文和unicode字符之间转换等资源,欢迎您收藏本站,我们将为您提供最新的Go 中文和unicode字符之间转换资源

Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

在实际应用有很多需要中文和unicode转换的场景,这里主要介绍通过golang实现中文和unicode互相转换。

<h3>1、中文转unicode</h3>

这一步比较简单

示例

<pre><code class="lang-go hljs"> sText := "hello 你好" textQuoted := strconv.QuoteToASCII(sText) textUnquoted := textQuoted[1 : len(textQuoted)-1] fmt.Println(textUnquoted)</code></code></pre><h3>2、unicode 转中文</h3>

网上有些例子,通过 u 分隔来实现,这种方式存在局限性。比如字符里面含有非中文字符,就会出现问题。

正确转换示例

<pre><code class="lang-go hljs">package main import ( "fmt" "strconv" "strings" ) func zhToUnicode(raw []byte) ([]byte, error) { str, err := strconv.Unquote(strings.Replace(strconv.Quote(string(raw)), `\\u`, `\u`, -1)) if err != nil { return nil, err } return []byte(str), nil } func main() { sText := "hello 你好" textQuoted := strconv.QuoteToASCII(sText) textUnquoted := textQuoted[1 : len(textQuoted)-1] fmt.Println(textUnquoted) v, _ := zhToUnicode([]byte(textUnquoted)) fmt.Println(string(v)) } </code></code></pre><ol><li><code>strconv.Quote(s string)string</code> -> 返回字符串在go语法下的双引号字面值表示,控制字符和不可打印字符会进行转义(t,n等)</li><li><code>strconv.Unquote(s string)(t string,err error)</code> -> 函数假设s是一个半引号、双引号、反引号包围的go语法字符串,解析它并返回它表示的值。(如果是单引号括起来的,函数会认为s是go字符字面值,返回一个单字符的字符串)</li></ol><h2>links</h2><ul><li>目录</li><li>上一节:</li><li>下一节:</li></ul> 到此这篇关于“ Go 中文和unicode字符之间转换”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Go 中文和unicode字符之间转换
Go语言--字符串的使用
简单明了!utf8和utf8mb4的区别
详细阐述PHP环境下如何将GBK编码转成UTF-8格式
Go安装、变量声明、strings模块
Go:08---byte字符类型、rune类型、string字符串类型
c/c 用Unicode和UTF8处理中文字符串解决乱码
python如何解决中文乱码问题
Golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf
2.GO语言之基本数据类型,运算符

[关闭]
~ ~