
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.07.2012, 19:20:15
|
|||
|---|---|---|---|
|
|||
Вопрос по кодировкам |
|||
|
#18+
Здравствуйте. Есть криптографическая dll библиотека (WinLib.dll). Для доступа к её функциям я создал промежуточную библиотеку для доступа к WinLib.dll через jni. В WinLib.dll есть функция sign(char *data, char *msg, int msgLen). После выполнения sign, в msg записываются данные, в msgLen значение 717. Msg я возвращаю в java код как byte[]. Код для тестирования функций библиотеки: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Пробовал возвращать из signData не byte[], а String. Из кода промежуточной библиотеки для signData делаю так: ...... Код: plaintext 1. 2. 3. 4. 5. 6. 7. Теперь тестовый файл: Код: java 1. 2. 3. 4. 5. 6. 7. 8. Собственно вопрос. Почему получается так, что new String(msg) "обрезает" байты? Почему во втором случае (когда возвращается String) колличество байт в 2 раза меньше? [i]Видимо в с++ char занимает 1 байт. Когда создаётся строка в java, то для каждого символа используется 2 байта. Причём, как я понял, берётся 2 символа, которые занимают по байту, и "соединяются" в один символ из 2 байт Как можно сделать так, чтобы значение msg, полученное из функции dll-библиотеки занимало тоже 717 байт и не обрезалось? Спасибо за помощь!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2131349]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
| others: | 284ms |
| total: | 411ms |

| 0 / 0 |
