ruby-on-rails - 在 Ruby on Rails 中将字符串转换为两字节十六进制 unicode

标签 ruby-on-rails ruby unicode utf-8 ucs2

我正在使用必应翻译器翻译消息,并通过短信发送结果。生成的字符串通常包含非英语字符,例如韩语、日语、希腊语。

我正在使用 Clickatell SMS Gateway,并根据此处的 Clickatell 规范:http://www.clickatell.com/downloads/http/Clickatell_HTTP.pdf ...我想我应该用十六进制编码的两字节 Unicode 编码我的字符串。

例如希腊字符:

ΩΨΘ

转换后应该变成:

03A903A80398

然后将其添加到我的 HTTP get 请求中的查询字符串中。

然而,我的问题是在我的 Ruby on Rails 应用程序中找到简洁的语法。

最佳答案

我喜欢这样有趣的。 :) 试试这个:

input.codepoints.map { |c| "%04X" % c }.join

我所看到的:

[1] pry(main)> x = "\u03A9\u03A8\u0398"
=> "ΩΨΘ"
[2] pry(main)> x.codepoints.map { |c| "%04X" % c }.join
=> "03A903A80398"

关于ruby-on-rails - 在 Ruby on Rails 中将字符串转换为两字节十六进制 unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24765670/

相关文章:

ruby-on-rails - rails 上的 ruby : Multiple controllers in one view

css - Rails 5 - 使用 item_wrapper_tag 在 simple_form 中设置集合样式

ruby-on-rails - Rails 中 Form_for 的模板错误

ruby-on-rails - 在 ruby​​ 中重构长字符串的最佳方法是什么?

ruby - 正则表达式在里面获取文本

powershell - PowerShell查找商标

php - sqldatabse 不接受非英文字符

mysql - 在 Rails ActiveRecord 中,为什么我的 JOINed 表中的列之一抛出错误消息?

ruby-on-rails - 清除某个字符后的字符串

c - 我如何 "decode"一个 UTF-8 字符?