Dosyalarla çeşitli IO işlemleri yapan kodlarla uğraşıyorum ve uluslararası dosya adlarıyla başa çıkabilmeyi istiyorum. Java 1.5 ile bir Mac üzerinde çalışıyorum ve bir dosya adı surrogates gerektiren Unicode karakterler içeriyorsa, JVM dosyayı bulamıyor gibi görünmüyor. Örneğin, benim test dosyasıdır: Java karakterleri \u8349\uD85B\uDFF6\u9DD7\u5916.gif
Java, Dosya Adında Unicode Değerleri ile Dosya Açamaz mı?
Bu dosya bir dosya oluşturursanız ben FileNotFound istisna olsun çünkü, bunu açamıyor içine bozuluyor
"草鷗外.gif"
. Hatta başarısız olur dosyasını içeren klasöre bu kullanarak: Aslında uğraşıyorum kod çoğu
File[] files = folder.listFiles();
for (File file : files) {
if (!file.exists()) {
System.out.println("Failed to find File"); //Fails on the surrogate filename
}
}
biçimdedir:
FileInputStream instream = new FileInputStream(new File("草鷗外.gif"));
// operations follow
ben bu sorunu ele alabilir bazı yolu var mı, dosya isimlerinden kaçmak ya da dosyaları farklı açmak mı?
Ortamınızdaki Charset.defaultCharset() değeri nedir? –
(Ne yazık ki, StackOverflow ayrıca vekillerle ilgili bir soruna da sahip ve sorudan U + 26FF6 ideografını çıkardı) – bobince
Hangi System.getProperty ("file.encoding") işlevinin ne getirdiğini sağlayabilir misiniz? Kodlamayı değiştirmeyi deneyin java -dfile.encoding = ENCODING_GOES_HERE ise sistem yerel ayarlarınızı değiştirmez. Bu da işe yaramıyorsa, bir uzmanı çözmek için bekleyeceğiz. – JCasso