⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 localeutil.java

📁 java 文件下载器。可自定义
💻 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 + -