Я пишу какое-то промежуточное программное обеспечение, которое сводит меня с ума. Я ищу экспертов I18N, чтобы помочь мне - это все довольно ново для меня.
Сейчас это все в Windows, но оно должно работать и на Linux, и на Mac, хотя, держу пари, это будет легко.
У меня есть система (которую я не могу потрогать), которая выдаст мне строку в виде wchar_t *. Он принимает входные данные либо в UTF-8, либо в текущей локали и делает магию, чтобы дать мне wchar_t *.
У меня есть другой API, который я использую, который может принимать имена файлов только как символы * (которых я тоже не могу коснуться).
Итак, я взял мое имя файла в wchar_t * и использовал функцию Windows API WideCharToMultiByte, преобразовал его в символ * и передал его в мою другую функцию API. Это работало очень хорошо, пока QA не решил использовать японскую ОС. Теперь fopen (глубоко внутри API, которого я не могу коснуться) не работает.
Я пытался использовать как CP_ACP, так и CP_UTF8 в моем вызове WideCharToMultiByte, и оба работают на моей машине разработки (США-английский) даже с японскими символами в имени файла. Но оба терпят неудачу на японской ОС.
Любые подсказки о том, как я должен действительно обрабатывать эти имена файлов?