在Ruby中如何获得:
"b\x81rger"
提供字符串"bürger"
。
我需要在Zebra打印机上打印特殊字符,我可以看到"b\x81rger"
打印"bürger"
,但发送"bürger"
不能打印正确的字符。
答案 0 :(得分:5)
原来是 CP850
。
正确的解决方案(Ruby 2.5 +)
规范化unicode字符串,然后将其编码为CP850
:
"bürger".unicode_normalize(:nfc).encode(Encoding::CP850)
#⇒ "b\x81rger"
适用于特殊字符和组合变音符号。
后备解决方案(Ruby 2.5 - )
编码并祈祷它是一个复合的变音符号:
"bürger".encode(Encoding::CP850)
#⇒ "b\x81rger"