Передача строки в функцию в правильной кодировке в Java
У меня есть папка с именем Test со следующей папкой:
- EY 1 P-¦ + ¡lohy k da + óov+¢m p-¦izn+ín+¡m 2002 - 2004
Тогда у меня есть следующий код
public static void main( String[] args )
{
File f = new File( "C:\\Test" );
File [] children = f.listFiles();
System.out.println( children[0].getName() );
System.out.println( System.getProperty("file.encoding") );
lapi.createObjectEx( 0, 3489025, LAPI_DOCUMENTS.OBJECTTYPE, LAPI_DOCUMENTS.FOLDERSUBTYPE , children[0].getName(), ci, oi );
}
Я выполнил код дважды. Один раз с использованием отладчика Netbeans, а другой с помощью файла jar из командной строки Windows.
Выходные данные отладки NetBeans
> EY 1 P-¦+¡lohy k da+òov+¢m p-¦izn+ín+¡m 2002 - 2004
> UTF-8
Вывод командной строки Windows
> EY 1 P-ª+ílohy k da+‗ov+óm p-ªizn+Ýn+ím 2002 - 2004
> Cp1252
Объект lapi обозначает API Livelink и используется для создания папки на сервере Livelink (теперь он называется Content Server), который является продуктом OpenText.
При выполнении из Netbeans папка создается с соответствующим именем на сервере Livelink. При запуске из командной строки Windows имя папки содержит множество вопросительных знаков. Проблемы с кодировкой означают, что имя папки не отображается должным образом на конечной веб-странице.
Кто-нибудь имеет какие-либо идеи, как я мог бы это исправить и установить кодировку явно при передаче строки моей функции lapi?
1 ответ
Используйте этот аргумент VM (Командная строка):
-Dfile.encoding=UTF-8