![](/img/trans.png)
[英]Encoding::UndefinedConversionError -ASCII-8BIT to UTF-8 ruby on rails
[英]Transcoding a string from UTF-8 to ASCII-8BIT in Ruby?
我必须将包含意大利语语句的UTF-8
编码的Ruby字符串打印到ESC / POS热敏打印机(仅接受ASCII-8BIT(1字节)字符集的打印机: http : //maxdb.sap.com/doc/ 7_6 / ca / bd35406ee32e34e10000000a155106 / content.htm )。
顺便说一句,我使用Ruby 2.x(在Windows或Linux上)。 我对如何转码感到困惑,
举例来说,假设包含在远程服务器上编码的JSON UTF-8中或包含在模板文件中的字符串为:
#!/bin/env ruby
# encoding: utf-8
string = "Però non è la città di Barnabù"
我必须将字符串(带重音符号/国际化的2个字节)转换为1个字节(已编码'ASCII8-BIT')
关于如何从UTF-8转换为ASCII8-BIT的任何建议?
我迷失了自己的方法,例如:.force_encoding('ASCII-8BIT')或encode(“)...
编辑:
非常感谢giorgio
我发现解决方案为:
string.encode "IBM437"
如评论所述,我重读了爱普生TM-T20打印机; 设置为默认的“代码表”数字:0,表示:“ PC437:美国,欧洲标准”
实际上,我了解PC437
是指2代码页437',请参阅:en.wikipedia.org/wiki/Code_page_437
所以我找到了有趣的宝石:github.com/ConradIrwin/encoding-codepage
显示代码页 437对应于字符集 "IBM437"
现在打印机可以正确打印! 我自己在这里回答,也许可以帮助别人。
乔治
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.