0
JavaソースDBオブジェクト でFile.getName()関数を使用しています。 "file.encoding"プロパティは 'WINDOWS-1251 ' 私たちは12.1(Java 1.6)で正しいファイル名を持っています 12.2では間違った文字(Java 1.8)を受け取りました コードは同じです。Oracle 12.2データベースの埋め込みJavaマシンでのgetName()エンコーディング
create or replace and compile java source named "JavaFileEncoding" as
import java.io.*;
import java.nio.charset.*;
public class JavaFileEncoding {
public static String getCyrillicFileName() {
System.out.println("Default Charset=" + Charset.defaultCharset());
File f = new File("<Directory containing files with non-ASCII characters");
File[] list = f.listFiles();
for(int
i = 0
; i < list.length
; i++
) {
if (!list[i].isDirectory()) {
return list[i].getName();
}
}
return "";
}
}
/
File.getName()結果の正確なエンコーディングとは何ですか? Java 6から8に変更されたものは何ですか? エンコーディングOSサーバー(Windows)の設定は同じです..または 他に何か確認する必要がありますか? Javaドキュメンテーションに何も記述されていません。
よろしくお願いします。
出力を表示します。 'File.getName()'は(あなたが関係する限り)エンコーディングを持たない 'String'を返します。 – Kayaman
12.2:GETCYRILLICFILENAME() ------------------------------------------- ------------------------------------- i?eaao.txt 12.1:GETCYRILLICFILENAME() ------------------------------------------------- ------------------------------- привет.txt –
そして、デフォルトの文字セットは何ですか? – Kayaman