的動作經由Ruby的包函數輸出一個固定長度字符串紅寶石包和拉丁(高ASCII)字符
clean = [edc_unico, sequenza_sede, cliente_id.to_s, nome, indirizzo, cap, comune, provincia, persona, note, telefono, email]
string = clean.pack('A15A5A6A40A35A5A30A2A40A40A18A25')
但是,數據是在UTF-8,以允許拉丁/高ASCII字符。包行爲的結果是合乎邏輯的。高級ASCII字符佔用2個常規ASCII字符的空間。由此產生的字符串縮短了1個空格字符,擊敗了最初的目的。
什麼是一個簡潔的ruby命令來解釋高ascii字符,並因此爲每個高ascii字符在每個變量的末尾添加一個額外的空間,以便可以將長度引入其正確的目標? (注:我假設沒有指令,專門針對這一點,和一大堆包指令是令人混混)
更新其中基於重音字符第二行移動位置的例子
CNFrigo 539 Via Privata Da Via Iseo 6C 20098San Giuliano Milanese MI02 98282410 02 98287686 12886480156 12886480156 Bo3 Euro Giuseppe Frigo Transport 349 2803433 [email protected] [email protected]
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 : [email protected] Amministrazione : [email protected] Silvia Scarpa Per Liberatorie 041/5136171 Sig.Ra Bianco Per Pagamento Fatture 041/5136111 (Solo Il Giovedi Pomeriggio Dalle 14 All [email protected]
你有'clean'的例子陣列? –
問題上面 – Jerome
更新的「高ASCII,」像「擴展ASCII」,是一種不精確的術語,增加了更多的混亂對您的問題比它的清晰度。如果要引用由UTF-8中的多個字節表示的字符,可以使用一個很好的術語「多字節UTF-8字符」。 –