在 Go 中将 unicode 代码点转换为文字字符

2024-02-22

假设我有一个这样的文本文件。

\u0053
\u0075
\u006E

有什么方法可以将其转换为这个吗?

S
u
n

目前,我正在使用ioutil.ReadFile("data.txt"),但是当我打印数据时,我得到的是 unicode 代码点而不是字符串文字。我意识到这是正确的行为ReadFile,这只是我不想要的。

我的目标是用它们的文字字符替换代码点。


您可以使用strconv.Unquote() https://golang.org/pkg/strconv/#Unquote and strconv.UnquoteChar() https://golang.org/pkg/strconv/#UnquoteChar函数来进行转换。

你应该知道的一件事是strconv.Unquote()只能取消引号中的字符串(例如以引号字符开头和结尾"或反引号字符`),所以我们必须手动附加它。

看这个例子:

lines := []string{
    `\u0053`,
    `\u0075`,
    `\u006E`,
}
fmt.Println(lines)

for i, v := range lines {
    var err error
    lines[i], err = strconv.Unquote(`"` + v + `"`)
    if err != nil {
        fmt.Println(err)
    }
}
fmt.Println(lines)

fmt.Println(strconv.Unquote(`"Go\u0070\x68\x65\x72"`))

输出(尝试一下去游乐场 http://play.golang.org/p/BZO5J0233H):

[\u0053 \u0075 \u006E]
[S u n]
Gopher <nil>

如果要取消引用的字符串包含单个字符的转义序列rune(或者你只是想取消引用第一个rune),您可以使用strconv.UnquoteChar()。这就是它的样子(注意:在这种情况下不需要引用输入,就像需要的那样strconv.Unquote()):

runes := []string{
    `\u0053`,
    `\u0075`,
    `\u006E`,
}
fmt.Println(runes)

for _, v := range runes {
    var err error
    value, _, _, err := strconv.UnquoteChar(v, 0)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Printf("%c\n", value)
}

这将输出(尝试在去游乐场 https://play.golang.org/p/aFv7BPnVphU):

[\u0053 \u0075 \u006E]
S
u
n
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Go 中将 unicode 代码点转换为文字字符 的相关文章

随机推荐

  • R twitterR 搜索Twitter 地理编码警告/错误

    我正在尝试使用 twitteR 包提取推文 但是当我按照他们在文档中的方式指定地理编码时 在通过 searchTwitter 函数获取推文时遇到问题 请看下面的代码 Oauth code successful authentication
  • Maven:无法安装第 3 方 jar

    尝试将第 3 方 jar 安装到我的存储库 alfresco repository jar 中 我正在使用以下命令 mvn install install file DgroupId alfresco DartifactId alfresc
  • 如何编辑(更新)JSON 文件 flutter 中的数据

    我正在尝试将特定值更新为外部存储中的 JSON 文件 虽然我可以写入该文件 但它正在用单个数据替换整个 JSON 文件 这个是用单个值替换整个文档 Future setBookmark int questionId String isBoo
  • 画布中图像上的圆角

    我有一张画布 里面有图像 我希望在图像的两个角上放置圆角 我想这样做的方法是使用全球运营商之一 但我似乎不知道如何做到这一点 任何帮助 将不胜感激 不要使用全局运算符 而是计算出您希望图像占据的空间 应该是除圆角之外的矩形路径 然后在绘制图
  • 如何在Wix中引用heat.exe生成的wxs文件中的File元素

    我将为我的网络项目创建设置 我用http blog bartdemeyer be 2013 10 create an installer for website with wix part 1 http blog bartdemeyer b
  • 为什么 Bootstrap-3 中没有 col-xs-offset-* 类?

    我读到Twitter Bootstrap 3 文档 http getbootstrap com css grid offsetting它不支持col xs offset 类 这似乎不符合移动优先 有充分的理由吗 我认为它们可能有用 I re
  • Bootstrap 图标栏未显示

    调整浏览器大小时 Bootstrap 导航栏菜单中的图标栏不显示 http jsbin com ixAqinA 1 http jsbin com ixAqinA 1 section class container div class nav
  • 如何显示当前文件上传的缩略图或预览

    我无法显示预览video image being loaded 基本上我的意思是说下面的代码不是firing to get video image preview 这是我的Jsfiddle http jsfiddle net ChJ9B 1
  • 不同的 CSS 背景图像取决于月份和年份

    基本上 我有一个带有文本的 div 我希望背景根据月份和年份显示不同的图像 我怎样才能实现这个目标 任何帮助将不胜感激 我已经准备了 4 年的每月图像 标记为 month0 2011 png 到 month11 2014 png 如果有帮助
  • HttpListener:如何获取http用户和密码?

    我在这里遇到了 HttpListener 的问题 当表单请求 http user email protected cdn cgi l email protection 制作完成后 如何获取用户名和密码 HttpWebRequest 有一个
  • 静态 boost::wregex 实例是线程安全的吗?

    使用固定的 boost wregex 声明静态 全局变量 然后从多个线程使用它 而不用担心正则表达式的内部状态 如果 Boost 已使用 BOOST HAS THREADS 进行编译 是否安全 e g boost wregex g rege
  • 通过 Hibernate 获取 PL/SQL 函数的返回值

    我在 Oracle 数据库中有一个无法更改的 PL SQL 函数 该函数采用一个标识实体的参数 创建该实体的副本 然后返回副本的 ID 这看起来像 函数 copy entity id IN NUMBER 返回号码 我需要从 Hibernat
  • 混合 C++ 异常处理和 SEH (Windows)

    我有一个函数 我在其中调用getaddrinfo 得到一个sockaddr 其目标内存是由系统分配的 许多人可能知道 您需要致电freeaddrinfo 释放由 getaddrinfo 分配的内存 现在 在我的函数中 有几个地方可能会抛出异
  • 带 && 的 C if 语句 - 哪个函数将首先执行?

    如果我在 C 中有一个 if 语句 如下所示 if function1 gt 0 function2 gt 0 blah 哪个函数将首先执行并且总是按该顺序执行 Here function1 is 保证首先执行 The 运算符是一个短路运算
  • 向量的一维卷积

    我正在学习如何使用具有一维卷积的卷积神经网络 这是一个家庭作业示例 import numpy as np import keras from keras models import Sequential from keras layers
  • 为什么 parseInt(1/0, 19) 返回 18?

    我有一个恼人的问题JavaScript gt parseInt 1 0 19 gt 18 为什么parseInt函数返回18 的结果1 0 is Infinity https developer mozilla org en US docs
  • 如何在 SSIS 中设置 zip 文件的密码?

    我使用 SSIS 中的执行进程任务通过 7 zip 压缩了文件 现在我必须为 zip 文件设置密码 我该如何实现 我不认为这是一个 ssis 问题 你必须看看7zip 命令行用户指南 https sevenzip osdn jp chm c
  • 我如何告诉 Struts2 在表单第一次显示时不要验证表单?

    我目前正在尝试学习Struts2 我创建了一个表单 一个处理表单的操作 一个验证表单的 XML 以及 struts xml 中的操作 每次显示表单时 即使是第一次 Struts2 都会尝试进行验证 因此在用户有机会完成表单之前就会显示错误
  • Chai 无法识别内容类型“application/javascript”

    无论我的服务器实际返回什么 Chai 总是给我res body 如果内容类型是 application javascript 这是我的服务器 const http require http const server http createS
  • 在 Go 中将 unicode 代码点转换为文字字符

    假设我有一个这样的文本文件 u0053 u0075 u006E 有什么方法可以将其转换为这个吗 S u n 目前 我正在使用ioutil ReadFile data txt 但是当我打印数据时 我得到的是 unicode 代码点而不是字符串