Как насчет файлов Свойств в Вашем выборе кодировки? Используемый, чтобы быть при загрузке Свойств Вы обеспечили InputStream и load()
, метод декодировал его как ISO-8859-1. Вы могли на самом деле хранить файл в некотором другом кодировании, но необходимо было использовать отвратительный взлом как это после загрузки для надлежащего декодирования данных:
String realProp = new String(prop.getBytes("ISO-8859-1"), "UTF-8");
, Но, с JDK 1.6, существует load()
метод, который берет Читателя вместо InputStream, что означает, что можно использовать корректное кодирование с начала (существует также store()
метод, который берет Писателя). Это походит на довольно грандиозное предприятие мне, но это, кажется, было, крался в JDK без шумихи вообще. Я только наткнулся на него несколько недель назад, и быстрый поиск Google, поднятый всего одно передающее упоминание о нем.
Figured it out by myself. The API is quite low-level, but it's not too bad:
File repoDir = new File("test-git/.git");
// open the repository
Repository repo = new Repository(repoDir);
// find the HEAD
Commit head = repo.mapCommit(Constants.HEAD);
// retrieve the tree in HEAD
Tree tree = head.getTree();
// find a file (as a TreeEntry, which contains the blob object id)
TreeEntry entry = tree.findBlobMember("b/test.txt");
// use the blob id to read the file's data
byte[] data = repo.openBlob(entry.getId()).getBytes();
Есть информация в JGit Tutorial (но он также не является ни действительно полезным, ни полным и, вероятно, устаревшим, поскольку они перешли на eclipse , где еще нет документации).