String#length
возвращает количество символов в строке.Поскольку символ UTF-8 может быть представлен более чем одним байтом, размер байта строки обычно больше.
TarWriter
теперь ожидает, что размер файла будет указан в байтах.Таким образом, если вы используете в вашем файле что-то еще, кроме простых символов ascii, он будет переполнен.
Чтобы решить эту проблему, вы должны передать file.bytesize
методу add_file_simple
вместоfile.size
.