📄 localeutil.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: LocaleUtil.java
package org.gudy.azureus2.core3.internat;
import java.nio.charset.Charset;
import java.util.*;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.util.Debug;
// Referenced classes of package org.gudy.azureus2.core3.internat:
// LocaleUtilDecoder, LocaleUtilDecoderCandidate, LocaleUtilDecoderFallback, LocaleUtilDecoderReal
public class LocaleUtil
{
private static final String systemEncoding = System.getProperty("file.encoding");
private static final String manual_charset[] = {
systemEncoding, "Big5", "EUC-JP", "EUC-KR", "GB18030", "GB2312", "GBK", "ISO-2022-JP", "ISO-2022-KR", "Shift_JIS",
"KOI8-R", "TIS-620", "UTF8", "windows-1251", "ISO-8859-1"
};
protected static final String generalCharsets[] = {
"ISO-8859-1", "UTF8", systemEncoding
};
private static LocaleUtil singleton = new LocaleUtil();
private LocaleUtilDecoder all_decoders[];
private LocaleUtilDecoder general_decoders[];
private LocaleUtilDecoder system_decoder;
private LocaleUtilDecoder fallback_decoder;
public static LocaleUtil getSingleton()
{
return singleton;
}
private LocaleUtil()
{
List decoders = new ArrayList();
List decoder_names = new ArrayList();
for (int i = 0; i < manual_charset.length; i++)
try
{
String name = manual_charset[i];
java.nio.charset.CharsetDecoder decoder = Charset.forName(name).newDecoder();
if (decoder != null)
{
LocaleUtilDecoder lu_decoder = new LocaleUtilDecoderReal(decoders.size(), decoder);
decoder_names.add(lu_decoder.getName());
if (i == 0)
system_decoder = lu_decoder;
decoders.add(lu_decoder);
continue;
}
if (i == 0)
Debug.out("System decoder failed to be found!!!!");
}
catch (Exception ignore) { }
general_decoders = new LocaleUtilDecoder[generalCharsets.length];
for (int i = 0; i < general_decoders.length; i++)
{
int gi = decoder_names.indexOf(generalCharsets[i]);
if (gi != -1)
general_decoders[i] = (LocaleUtilDecoder)decoders.get(gi);
}
boolean show_all = COConfigurationManager.getBooleanParameter("File.Decoder.ShowAll");
if (show_all)
{
Map m = Charset.availableCharsets();
Iterator it = m.keySet().iterator();
do
{
if (!it.hasNext())
break;
String charset_name = (String)it.next();
if (!decoder_names.contains(charset_name))
try
{
java.nio.charset.CharsetDecoder decoder = Charset.forName(charset_name).newDecoder();
if (decoder != null)
{
LocaleUtilDecoder lu_decoder = new LocaleUtilDecoderReal(decoders.size(), decoder);
decoders.add(lu_decoder);
decoder_names.add(lu_decoder.getName());
}
}
catch (Exception ignore) { }
} while (true);
}
fallback_decoder = new LocaleUtilDecoderFallback(decoders.size());
decoders.add(fallback_decoder);
all_decoders = new LocaleUtilDecoder[decoders.size()];
decoders.toArray(all_decoders);
}
public String getSystemEncoding()
{
return systemEncoding;
}
public LocaleUtilDecoder[] getDecoders()
{
return all_decoders;
}
public LocaleUtilDecoder[] getGeneralDecoders()
{
return general_decoders;
}
public LocaleUtilDecoder getFallBackDecoder()
{
return fallback_decoder;
}
public LocaleUtilDecoder getSystemDecoder()
{
return system_decoder;
}
protected LocaleUtilDecoderCandidate[] getCandidates(byte array[])
{
LocaleUtilDecoderCandidate candidates[] = new LocaleUtilDecoderCandidate[all_decoders.length];
boolean show_less_likely_conversions = COConfigurationManager.getBooleanParameter("File.Decoder.ShowLax");
for (int i = 0; i < all_decoders.length; i++)
{
candidates[i] = new LocaleUtilDecoderCandidate(i);
try
{
LocaleUtilDecoder decoder = all_decoders[i];
String str = decoder.tryDecode(array, show_less_likely_conversions);
if (str != null)
candidates[i].setDetails(decoder, str);
}
catch (Exception ignore) { }
}
return candidates;
}
protected List getCandidateDecoders(byte array[])
{
LocaleUtilDecoderCandidate candidates[] = getCandidates(array);
List decoders = new ArrayList();
for (int i = 0; i < candidates.length; i++)
{
LocaleUtilDecoder d = candidates[i].getDecoder();
if (d != null)
decoders.add(d);
}
return decoders;
}
protected List getCandidatesAsList(byte array[])
{
LocaleUtilDecoderCandidate candidates[] = getCandidates(array);
List candidatesList = new ArrayList();
for (int i = 0; i < candidates.length; i++)
if (candidates[i].getDecoder() != null)
candidatesList.add(candidates[i]);
return candidatesList;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -