【发布时间】:2017-04-12 07:35:09
【问题描述】:
一个动作通过 Ruby 的 pack 函数输出一个固定长度的字符串
clean = [edc_unico, sequenza_sede, cliente_id.to_s, nome, indirizzo, cap, comune, provincia, persona, note, telefono, email]
string = clean.pack('A15A5A6A40A35A5A30A2A40A40A18A25')
但是,数据采用 UTF-8 格式,以允许使用 latin/high-ascii 字符。打包操作的结果是合乎逻辑的。高 ascii 字符占用 2 个常规 ascii 字符的空间。结果字符串被缩短了 1 个空格字符,违背了最初的目的。
什么是简洁的 ruby 命令来解释高 ascii 字符,从而在每个变量的末尾为每个高 ascii 字符添加一个额外的空格,以便可以将长度带到正确的目标? (注意:我假设没有专门解决这个问题的指令,而且所有的 pack 指令都令人费解)
更新第二行根据重音字符移动位置的示例
CNFrigo 539 Via Privata Da Via Iseo 6C 20098San Giuliano Milanese MI02 98282410 02 98287686 12886480156 12886480156 Bo3 Euro Giuseppe Frigo Transport 349 2803433 M.Gianoli@Delanchy.Fr S.Galliard@Delanchy.Fr
CNIn's M 497 Via Istituto S.Maria della Pietà, 30173Venezia Ve041 8690111 340 6311408 0041 5136113 00115180283 02896940273 B60Fm Euro Per Documentazioni Tecniche Inviare Materiale A : Silvia_Scarpa@Insmercato.It Amministrazione : Michela_Bianco@Insmercato.It Silvia Scarpa Per Liberatorie 041/5136171 Sig.Ra Bianco Per Pagamento Fatture 041/5136111 (Solo Il Giovedi Pomeriggio Dalle 14 All Beniservizi.Insmercato@Pec.Gruppopam.It
【问题讨论】:
-
你有
clean数组的例子吗? -
上面更新的问题
-
“High-ASCII”,如“扩展 ASCII”,是一个不精确的术语,它给您的问题带来的混乱多于它的清晰度。如果要引用在 UTF-8 中由多个字节表示的字符,一个很好的术语是“多字节 UTF-8 字符”。