Ruby:转义 unicode 字符串

2023-12-19

统一码字符串:

string = "CEO Frye \u2013 response to Capitalism discussion in Davos: Vote aggressively with your wallet against firms without social conscience."

我尝试过(通过这是在 Ruby 中取消转义 unicode 转义序列的最佳方法吗? https://stackoverflow.com/questions/7015778/is-this-the-best-way-to-unescape-unicode-escape-sequences-in-ruby):

def unescape_unicode(s)
   s.gsub(/\\u([\da-fA-F]{4})/) {|m| [$1].pack("H*").unpack("n*").pack("U*")}
end

unescape_unicode(string) #=> CEO Frye \u2013 response to Capitalism discussion in Davos: Vote aggressively with your wallet against firms without social conscience. 

但输出(到文件)仍然与输入相同!任何帮助,将不胜感激。

编辑: 不使用 IRB,使用 RubyMine,并且输入是从 Twitter 解析的,因此单个"\u" not "\\u"

Edit 2: RubyMine IDE Output


你正在尝试从irb,或输出字符串p?

String#inspect(从调用irb and p str) 将 unicode 字符转换为\uxxxx格式以允许在任何地方打印字符串。另外,当您输入"CEO Frye \u2013 response to...",这是由 ruby​​ 解析器解析的转义序列。它是最终字符串中的 unicode 字符。

str1 = "a\u2013b"
str1.size #=> 3
str2 = "a\\u2013b"
str2.size #=> 8
unescape_unicode(str2) == str1 #=> true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby:转义 unicode 字符串 的相关文章

随机推荐

  • ios标题和副标题在导航栏居中

    我试图在导航栏中添加两个 UILabel 而不是只有一个 我点击此链接以获取有关如何执行此操作的信息 iPhone 导航栏中的标题和副标题 https stackoverflow com questions 2817181 iphone t
  • 在存储过程中使用日期时间作为参数更新表时出错

    将 char 数据类型转换为 DateTime 数据类型导致 DateTime 值超出范围 该语句已终止 ALTER PROCEDURE dbo attendance updatebyemployee id Employee id int
  • iOS CoreData - 启用 sqlite WAL / 预写日志记录有什么缺点吗

    在 WWDC 2013 会议 207 核心数据的新增功能 中 他们提到您可以在添加持久存储时通过传递选项字典来启用 SQLite WAL NSSQLitePragmasOption journal mode WAL 在 iOS4 上可用 并
  • CSS 模块不适用于 React 版本 16.6.0

    我试图在 React 中使用 CSS 模块 这是我的 App js 代码 import React from react import styles from index css const App gt const REACT VERSI
  • 如何将正确的 Cabal 规范与 Travis CI 构建中的每个解析器相匹配?

    更新我的后Haskell 包的 https hackage haskell org package crypto enigma cabal file 到阴谋集团 2 2 https github com orome crypto enigm
  • system()函数属于C还是C++?

    include
  • 如何在.NET中创建和使用资源

    如何创建一个可以在程序的各个部分轻松引用和使用的资源 我的具体问题是我有一个 NotifyIcon 我想根据程序的状态更改其图标 这是一个常见问题 但我已经困扰了很长时间 好吧 在四处搜索并拼凑了 StackOverflow 周围的各个点之
  • Linq.Except 的更多“SQL 语法”

    Linq 中的大多数表达式都可以用两种语法编写 基本上 方法语法和类似 SQL 的语法 例如 方法语法 var results MySet Where n gt n Status State ACTIVE 类似 SQL 的语法 var re
  • 如何将选中的复选框(Aero 主题)渲染到 RenderTargetBitmap?

    我的复选框呈现时没有复选标记 如果我只使用一个复选框 实例对象 进行渲染 那么我可以显示复选标记 但我无法使用此解决方案 我需要能够使用本地复选框渲染它 此复选框通过 PresentationFramework Aero component
  • MySQL触发器中的多个if语句

    如果 MySQL 触发器中有多个 if 语句 最好的方法是什么 目前我的 SQL 如下所示 IF NOT NEW status lt gt OLD status THEN my sql ELSEIF NOT NEW actual lt gt
  • Internet Explorer 11:空白页内存泄漏?

    互联网浏览器 11 版本 11 0 9600 17280 更新版本 11 0 12 KB2977629 HTML 页面 测试方法 导航至页面 打开开发者工具 F12 切换到内存选项卡 开始分析会话 按住页面上的刷新按钮 F5 观察内存的爬升
  • 以编程方式调用 Pylint

    我想调用 Pylint 检查器 仅限于错误信号部分 作为我的单元测试的一部分 所以我检查了 Pylint 可执行脚本 找到了pylint lint Run助手类 在那里我迷失了很长一段时间 init 函数 以调用结束sys exit 有人尝
  • 将表结构复制到sqlite3中的新表

    有没有一种简单的方法将现有表结构复制到新表结构 不需要数据 只需要结构 gt 如 id INTEGER name varchar 20 Thx 你可以使用这样的命令 CREATE TABLE copied AS SELECT FROM my
  • Gio.MemoryInputStream 关​​闭时不会释放内存

    在 Windows 7 上运行 Python 3 4 Gio MemoryInputStream 的 close 函数不会释放内存 而它应该释放内存 测试代码是 from gi repository import Gio import os
  • 使用 ServiceStack.Text 作为 SignalR 的 JSON 序列化器

    为了在我的应用程序层中实现一致的序列化 我想对 SignalR 使用与我在其他地方使用的相同的序列化库 ServiceStack Text 在关注 SignalR 的 Wiki 时entry https github com SignalR
  • Redis:如何将“正常”集与排序集相交?

    假设我有一个集合 或者排序的集合或列表 如果这样会更好 A100 到 1000 个字符串 然后我有一个排序集B还有更多的字符串 比如说一百万 Now C应该是交集A and B 当然是弦乐 我想要拥有 X 所在的每个元组 X SCORE O
  • Java 8:比较不同类型列表的更有效方法?

    在单元测试中 我想验证两个列表是否包含相同的元素 要测试的列表是由以下列表构建的Person对象 其中一个类型字段String被提取 另一个列表包含String文字 人们经常会发现以下代码片段来完成此任务 请参阅这个答案 https sta
  • 有一些基本 R 解析器的代码吗?

    我正在寻找用于解析 R 代码的 Bison Flex 实现 以便我可以在 C 程序中使用它来实现使用 R 表达式的编程语言 我在谷歌上找不到任何可用的东西 除了这个 https github com halpo parser https g
  • Task.Delay 超过 int.MaxValue 毫秒

    最大持续时间aTask Delay可以告诉延迟的是int MaxValue毫秒 创建一个最干净的方法是什么Task哪个会延迟到那个时间之后 Fine await Task Delay TimeSpan FromMilliseconds in
  • Ruby:转义 unicode 字符串

    统一码字符串 string CEO Frye u2013 response to Capitalism discussion in Davos Vote aggressively with your wallet against firms