Оно написано для *nix, а там как правило системная кодировка utf-8 и там всё работает через char. Для Windows же официального порта нету и гугловцам пофиг, как там что работает: Error when opening paths with unicode characters.
Хотя не понятно, почему такого порта нет, они ведь в любом случае собирают GoogleEarth под Windows и он эту либу юзает, хоть она и вкомпилена в него.
По-идее, можно пропатчить этот метод, чтобы он принимал на вход widestring:
leveldb_t* leveldb_open(
const leveldb_options_t* options,
const char* name,
char** errptr) {
DB* db;
if (SaveError(errptr, DB::Open(options->rep, std::string(name), &db))) {
return NULL;
}
leveldb_t* result = new leveldb_t;
result->rep = db;
return result;
}
И, соответственно, не забыть при сборке либы включить юникодные строки. Может быть поможет. |