Передача параметров командной строки из кодировки Java в C ++ - PullRequest
2 голосов
/ 10 ноября 2011

У меня есть приложение Java, в котором я хочу вызвать другое приложение C ++.Для этого в моем Java я вызываю

Runtime.exec(args)

Мой аргумент - "HelloWorldèçàœ".

Когда мой C ++ получает этот аргумент, он видит его как "HelloWorld ????".Я посмотрел на карту памяти, и символы èçàœ отображаются как 3f 3f 3f 3f.

(Кроме того, я не уверен, что это актуально, но когда я скомпилировал свой C ++, я выбрал опцию: «СимволSet = Использовать многобайтовый набор символов "(в Properties-> General).)

Q: Как мне передать такой параметр из Java в C ++?

Спасибо

1 Ответ

0 голосов
/ 23 декабря 2011

Это, вероятно, из-за кодировок, которые вы используете с обеих сторон. Попробуйте убедиться, что ваши «args» хранятся как строка UTF-8 в Java, и попробуйте прочитать как строку UTF-8 в вашем коде C ++.

В противном случае Java использует кодировку платформы по умолчанию, которая может даже не поддерживать эти символы "èçàœ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...