Ruby解码字符串

Pod*_*Pod 2 ruby string utf-8

在Ruby中我怎样才能得到:

"b\x81rger"通过提供字符串"bürger".

我需要在Zebra打印机上打印特殊字符,我可以看到"b\x81rger"打印"bürger",但发送"bürger"不会打印正确的字符.

Ale*_*kin 6

结果证明了这一点CP850.

正确的解决方案(Ruby 2.5+)

规范化unicode字符串,然后将其编码为CP850:

"bürger".unicode_normalize(:nfc).encode(Encoding::CP850)
#? "b\x81rger"
Run Code Online (Sandbox Code Playgroud)

适用于特殊字符和组合变音符号.

后备解决方案(Ruby 2.5-)

编码并祈祷它是一个复合的变形金刚:

"bürger".encode(Encoding::CP850)
#? "b\x81rger"
Run Code Online (Sandbox Code Playgroud)