|
|
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Не могу сообразить с кодировками! Стоит задача подать строку символов длиной 30800 байт одной функции в dll-ке, проблема в том что там присутствуют кириллические заглавные буквы! Если эта строка из пробелов: Код: java 1. 2. как только её заполнишь по нужному формату, например "123456789ААААААА БББББББ ВВВВВВВВВВВВ " Код: java 1. 2. получается что буквы по 2 байта занимают! Можно ли это сделать в 1 байт??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 12:24:47 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 12:51:07 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Мне нужно подать строку символов длиной 30800 байт. Если в строке находится кириллица, то каждая буква занимает 2 байта и соответственно строка становиться больше, например 30827 байт, а надо чтобы она была 30800 байт даже с кириллицей! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 04:36:41 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
В джаве каждая буква занимает 2 байта, без разницы кириллица это или латиница (а иногда и 4). Показывай вызов функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 05:44:56 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
НиколахаМне нужно подать строку символов длиной 30800 байт. На обед подать? Кому? Длина строки меряется символами, а не байтами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 09:12:50 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
avp.mkВ джаве каждая буква занимает 2 байта, без разницы кириллица это или латиница (а иногда и 4). Показывай вызов функции. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 09:22:41 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, есть DLL. я его использую. у него есть функция которая в качестве вх параметра принимает строку. У неё в инструкции написано "необходимо подать строку символов длиной 30800 байт" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 09:25:39 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Николаха, У неё в инструкции написано "необходимо подать строку символов длиной 30800 байт" А в какой кодировке ей нужно строку подать? Вот и получайте байты строки в нужной кодировке. Примеры в ответах уже были. Если кодировка UTF-8, то никак вы меньше байт не сделаете. И вообще, как вы ей строку передаете? В какой момент строка в тип для dll'ки конвертируется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 10:00:56 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
maxkarНиколаха, У неё в инструкции написано "необходимо подать строку символов длиной 30800 байт" А в какой кодировке ей нужно строку подать? Вот и получайте байты строки в нужной кодировке. Примеры в ответах уже были. Если кодировка UTF-8, то никак вы меньше байт не сделаете. И вообще, как вы ей строку передаете? В какой момент строка в тип для dll'ки конвертируется? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. как получить массив байтов я понял! я использую NativeCall Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 10:18:23 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Николахаavp.mkВ джаве каждая буква занимает 2 байта, без разницы кириллица это или латиница (а иногда и 4). Показывай вызов функции. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Внезапно)) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. output Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 10:40:14 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
avp.mk, Что то я не пойму как это должно мне помочь!? Вот как мне сделать чтобы строка была и длиной 30800 символов и размером 30800 байтов!? Код: java 1. как я понял это получить массив байтов из строки, где Cp1251 означает, что считываемая строка сейчас в кодировке Cp1251, так!? Или я не правильно думаю!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 11:07:44 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
avp.mk, getBytes(String charsetName) Encodes this String into a sequence of bytes using the named charset, storing the result into a new byte array. т.е наоборот. )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 11:22:35 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Теперь ещё прочитать что делает getBytes() без параметров.. Будешь совсем молодец)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 11:37:54 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Николахаavp.mk, Код: java 1. как я понял это получить массив байтов из строки, где Cp1251 означает, что считываемая строка сейчас в кодировке Cp1251, так!? Или я не правильно думаю!? строка это s , как ты ее считал (в какой кодировке) одному богу известно Cp1251 это кодировка в какой у тебя будут символы содержащиеся в байтах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 11:53:12 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Автору топика явно не помешает изучить основы Java. И вот здесь полазить тоже не помешает: http://docs.oracle.com/javase/tutorial/i18n/text/convertintro.html А лучше по всем пройтись: http://docs.oracle.com/javase/tutorial/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 11:55:59 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
am_sasaНиколахаavp.mk, Код: java 1. как я понял это получить массив байтов из строки, где Cp1251 означает, что считываемая строка сейчас в кодировке Cp1251, так!? Или я не правильно думаю!? строка это s , как ты ее считал (в какой кодировке) одному богу известно Cp1251 это кодировка в какой у тебя будут символы содержащиеся в байтах смотри выше ептить! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 12:14:44 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Я даже сам её сформировал руками, не считывал ниоткуда! Код: java 1. авторстрока это s, как ты ее считал (в какой кодировке) одному богу известно Cp1251 это кодировка в какой у тебя будут символы содержащиеся в байтах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 12:23:17 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Николаха, String хранит в себе массив char, char же в свою очередь в java занимает 2 байта. Покажите мануал к вызову И воообще, длина new String("ABC") <> длине массива этих символов..вообще пичаль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 12:55:41 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Николаха, кстати, если вы используете java 6, попробуйте использовать ключ UseCompressedStrings Если я не ошибаюсь, с таким ключом по возможности строки упаковываются из 2х байтовых char в однобайтовые char[]=>byte[]. В java 7 по моему это выпилили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 13:06:52 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Озверинкстати, если вы используете java 6, попробуйте использовать ключ UseCompressedStrings Если я не ошибаюсь, с таким ключом по возможности строки упаковываются из 2х байтовых char в однобайтовые char[]=>byte[]. В java 7 по моему это выпилили. Вряд ли это как-то повлияет на интеграцию с нативным кодом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 13:26:58 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОзверинкстати, если вы используете java 6, попробуйте использовать ключ UseCompressedStrings Если я не ошибаюсь, с таким ключом по возможности строки упаковываются из 2х байтовых char в однобайтовые char[]=>byte[]. В java 7 по моему это выпилили. Вряд ли это как-то повлияет на интеграцию с нативным кодом. на самом деле есть подозрение, что на вход требуется char[] но как без из с\с++, где в char хранится как раз 1 байт, другими словами, byte[] отлично подойдет ;) Хотя, это всего лишь догадка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 13:32:28 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Озверинкстати, если вы используете java 6, попробуйте использовать ключ UseCompressedStrings Если я не ошибаюсь, с таким ключом по возможности строки упаковываются из 2х байтовых char в однобайтовые char[]=>byte[]. В java 7 по моему это выпилили. Думаю этот пост поставил рекорд по отдалённости от темы "Вызов нативной функции dll библиотеки со строковым параметром из Java")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 13:37:24 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
avp.mkОзверинкстати, если вы используете java 6, попробуйте использовать ключ UseCompressedStrings Если я не ошибаюсь, с таким ключом по возможности строки упаковываются из 2х байтовых char в однобайтовые char[]=>byte[]. В java 7 по моему это выпилили. Думаю этот пост поставил рекорд по отдалённости от темы "Вызов нативной функции dll библиотеки со строковым параметром из Java")) учитывая, что стороковый тип в java вообще специфичен только для java, то само название себе противоречит ;) Могли бы с этого начать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 13:39:30 |
|
||
|
Кириллица в 1 байт
|
|||
|---|---|---|---|
|
#18+
Николаха, Прогоните вашу dll в этой программе и покажите спецификацию метода который нужно вызвать. DLL Export Viewer v1.62 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 13:42:26 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38367000&tid=2128781]: |
0ms |
get settings: |
18ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
50ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
110ms |
get tp. blocked users: |
2ms |
| others: | 322ms |
| total: | 561ms |

| 0 / 0 |
