Sprintf/printf i unicode

Czasami chcemy wyrzucic jakies zestawienie do txt (zachowujac podzial na kolumny). Jezeli zestawienie zawiera polskie diakrytyki to zaczyna sie problem - kolumny sie rozjezdzaja.

np.

table.each do |row| io.printf("[%3d] %-35s [%3d] %s\n", row[0], row[1], row[2], row[3]) # w row[1] wyst. polskie znaki end
A teraz maly hack, aby jednak uzyskac to co chcemy:

table.each do |row| io.printf("[%3d] %-#{row[1].length-row[1].chars.length+35}s [%3d] %s\n", row[0], row[1], row[2], row[3]) end
chars jest met. z active_support http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/String/Unicode.html#M000734