|
|
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
Есть кто работал с библиотекой jacob? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Если userName на кириллице, то программа выдает: Exception in thread "main" com.jacob.com.ComFailException: Can't find moniker, а если на английском, то все работает нормально. Кто может знает, как это обойти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2015, 15:02 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
Ошибку выдает тут Dispatch dServ2 = new Dispatch(objUser); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2015, 15:02 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
Исходные коды же есть, в чем проблема? Строка получается и передается в JACOB примерно в следующим виде: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Макрос A2W преобразует данные из ANSI кодировки Windows в Wide char. Отсюда вывод, входные строка должна содержать данные в ANSI кодировки Windows (скорее всего 1251), а НЕ в UTF8 (как принято в Java). Авторы JACOB конечно немного уроды, что НЕ сделали преобразование из UTF8 (принятой в Java) в Wide char. Но, думаю, национальные имена в COM не так часто встречаются. Т.ч. я бы попробывал просто руками в Java преобразовать строку из UTF в 1251. Понятное дело, что работать будет только на Windows, где в качестве ANSI кодировки стоит 1251, т.е. Default characterset = Russian. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2015, 17:37 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. Вот написал, все равно ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2015, 17:49 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
Тогда подробнее, что 1: Вы пытаетесь сделать. С созданием объектов через моникеры вообще ни разу не сталкивался. Что такое 2: простейший, компилируемый test case. У меня Windows 7, если это стандартная возможность, то постараюсь запустить. Если и когда будет время ((( В принципе JACOB 1 в 1 передает строку в Windows API. Т.ч. или проблема у Вас или у M$. String objUser2 = new String(objUser.getBytes("utf-8"),"cp1251"); Мне кажется, должно быть наоборот: new String( objUser.getBytes("cp1251") ) Проверять влом ))) Или гоните тест кейс с пояснениями, что за задачу Вы решаете. Может и мне такая возможность когда-нибудь пригодится ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2015, 19:02 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Функция GetStringUTFChars() формируют массив байтов по стандарту UTF, который соответствует ожидаемому только для ASCII-символов (первых 128 значений). Русские буквы опять в пролёте. Так что придется искать другую библиотеку. Я делаю пирограмму, которая меняю пароли локальным Администраторам в сети ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2015, 10:13 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
И чем вам штатный утиль не угодил-то??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2015, 15:10 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Компов 350 штук, надо всем поменять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2015, 16:22 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
Не подскажите, если пересобрать dll jacob, то там автоматически можно скомпилировать под x64 и x86? И подойдет Borland С++ Builder 6? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2015, 16:23 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
AlexSSS4Компов 350 штук, надо всем поменять.Давно это было, но переустанавливал SAV9 -> SAV10 в сетке из ~80 компов. Самым сложным было обойти глюкофичи симантека из-за которых и пришлось всё это организовывать. А вашу задачу решает вполне тривиальное: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2015, 16:35 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
AlexSSS4Не подскажите, если пересобрать dll jacob, то там автоматически можно скомпилировать под x64 и x86? Из BuildingJacobFromSource.html: Development Environment The simplest build environment includes MS Visual Studio 10.0 (Studio 2010), Eclipse 3.3 with the C/C++ module and JDK 1.6. In that situation, you would just create the compilation_tools.properties using the example at the top of build.xml as a template. Microsoft Visual Studio 2013 and it's included library. (to C:\ProgramFiles (X86) in my case) Eclipse from www.eclipse.org as the Java IDE. Eclipse C/C++ plugin can be used for C coding in place of VC++ IDE. Java JDK 1.6 , latest available Install the V7.1A libraries that originally came with VS2010 Release C Version Java Version ANT Version Eclipse Version Used generated DLLs up to 1.6 VC 98 (6.0) ? MAKE ? 32 bit 1.7 VC 98 (6.0) 1.4 (48) 1.? ? 32 bit 1.8 VC 98 (6.0) 1.4 (48) 1.? ? 32 bit 1.9 VC 98 (6.0) 1.4 (48) 1.? ? 32 bit 1.10 VC 98 (6.0) 1.4 (48) 1.? 3.?? 32 bit 1.11 VC 98 (6.0) & 2003 64bit libs 1.4.? (48) 1.6.? 3.2.1 32 and 64 bit 1.12 VC 98 (6.0) & 2003 64bit libs 1.4.2 (48) 1.6.5 3.2.2 32 and 64 bit 1.13 VC 2005 (8) 1.4.2 (48) 1.7.0 3.3 32 and 64 bit 1.14 VC 2005 (8) 1.5.0 (49) 1.7.0 3.3 32 and 64 bit 1.15 VC 2005 (8) 1.5.0 (49) 1.7.0 3.4 32 and 64 bit 1.17 VC 2005 (8) 1.5.0 (49) 1.8.4 Eclipse Embedded 4.3 32 and 64 bit 1.18 VS 2013 (12) Windows SDK 7.1A 1.6.0 (50) 1.8.4 Eclipse Embedded 4.3 32 and 64 bit Microsoft Visual Studio 13 supports 64 bit builds. so no additional tools are required. Microsoft changed the location of the windows sdk (formerly known as platform sdk) after VC 8.0. https://en.wikipedia.org/wiki/Microsoft_Windows_SDK AlexSSS4И подойдет Borland С++ Builder 6? Там просто .C, .H файла и банальный Windows API. Т.ч. для первого приближения пойдет. Понятное дело, проект придется делать самому. Но, разумеется, для продакшена желательно использовать "родные" средство. У Borland C по сравнению с MS VC полно мелких недостатков. Конечно спорно и холеварано, но мне в какой-то момент пришлось от BC к MS VC уходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2015, 17:12 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
Ура. Все получилось! Пришлось перекомпилировать dll и в Dispatch.cpp поменять Код: plaintext 1. на Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2015, 14:47 |
|
||
|
Java + jacob. Работа с кириллицей
|
|||
|---|---|---|---|
|
#18+
Оптимальный вариант дополнительно авторам написать. Сколько лет библиотеки, на такую бяку никто внимание не обращал ((( К тому же явный ляп автора Jacob'а. В Java не ANSI, в Java UTF8. Т.ч. использование A2W совершенно не правомерно и не корректно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2015, 18:57 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39021187&tid=2125088]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
192ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 536ms |

| 0 / 0 |
