В простом случае, когда ваши char
s не содержат акцентированных символов или чего-либо подобного, вы можете просто скопировать каждый из них в пункт назначения и использовать его:
std::vector<char> frameID;
std::vector<wchar_t> field_name;
std::copy(frameID.begin(), frameID.end(), std::back_inserter(field_name));
lucene_write_field(&field_name[0], field_name.length());
Я предполагаю, чточто для идентификаторов кадров ID3 у вас нет акцентированных символов и тому подобного, так что, вероятно, это все, что вам нужно.Если у вас есть возможность использовать акцентированные символы и тому подобное, то все становится более сложным в спешке - вам нужно будет конвертировать из чего-то вроде ISO 8859-x в (вероятно) UTF-16 Unicode.Для этого вам нужна кодовая страница, которая говорит вам, как интерпретировать ввод (т. Е. Существует несколько разновидностей ISO 8859, и одна для ввода на французском будет отличаться от, например, для русской).