在Java中将字符串传递给正确的编码

时间:2013-04-21 13:17:20

标签: java livelink

我有一个名为Test的文件夹,其中包含以下文件夹:

  • EY 1 P-| +¡lohy k da +òov+¢m p -..izn +ín+¡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调试器,另一个使用Windows命令行中的jar文件。

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对象代表Livelink API,用于在Livelink Server(现在称为Content Server)中创建一个文件夹,该文件夹是OpenText的产品。

从Netbeans执行时,将在Livelink Server中使用适当的名称创建文件夹。从Windows命令行执行时,文件夹名称包含许多问号。编码问题意味着文件夹的名称无法在生成的网页中正确显示。

有没有人有任何想法如何解决这个问题并在将字符串传递给我的lapi函数时显式设置编码?

1 个答案:

答案 0 :(得分:2)

使用此VM(命令行)参数:

-Dfile.encoding=UTF-8