Передача строки в функцию в правильной кодировке в 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
Другие вопросы по тегам