Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
J

juniversalchardet

> 编程语言
Open source

Originally exported from code.google.com/p/juniversalchardet

374 stars0 likes0 views
WebsiteGitHub

About

Originally exported from code.google.com/p/juniversalchardet

juniversalchardet

What is it?

juniversalchardet is a Java port of "universalchardet", that is the encoding detector library of Mozilla.

Encodings that can be detected

  • Chinese

    • ISO-2022-CN
    • BIG-5
    • EUC-TW
    • HZ-GB-2312
    • GB-18030
  • Cyrillic

    • ISO-8859-5
    • KOI8-R
    • WINDOWS-1251
    • MACCYRILLIC
    • IBM866
    • IBM855
  • Greek

    • ISO-8859-7
    • WINDOWS-1253
  • Hebrew

    • ISO-8859-8
    • WINDOWS-1255
  • Japanese

    • ISO-2022-JP
    • Shift_JIS
    • EUC-JP
  • Korean

    • ISO-2022-KR
    • EUC-KR
  • Unicode

    • UTF-8
    • UTF-16BE / UTF-16LE
    • UTF-32BE / UTF-32LE / X-ISO-10646-UCS-4-3412 / X-ISO-10646-UCS-4-2143
  • Others

    • WINDOWS-1252
    • US-ASCII

All supported encodings are listed in org.mozilla.universalchardet.Constants.

How to use it

(1) Construct an instance of org.mozilla.universalchardet.UniversalDetector.

(2) Feed some data (typically some thousand bytes) to the detector using UniversalDetector.handleData().

(3) Notify the detector of the end of data by using UniversalDetector.dataEnd().

(4) Get the detected encoding name by using UniversalDetector.getDetectedCharset().

(5) Don't forget to call UniversalDetector.reset() before you reuse the detector instance for another guess.

------------ Sample Code ------------

…

Detecting encoding of a File (simple way)


import org.mozilla.universalchardet.UniversalDetector;

public class TestDetectorFile {

	public static void main (String[] args) throws java.io.IOException {
		if (args.length != 1) {
			System.err.println("Usage: java TestDetectorFile FILENAME");
			System.exit(1);
		}
		java.io.File file = new java.io.File(args[0]);
		String encoding = UniversalDetector.detectCharset(file);
		if (encoding != null) {
			System.out.println("Detected encoding = " + encoding);
		} else {
			System.out.println("No encoding detected.");
		}
	}
}

Creating a reader with correct encoding


import org.mozilla.universalchardet.ReaderFactory;

public class TestCreateReaderFromFile {
	
	public static void main (String[] args) throws java.io.IOException {
		if (args.length != 1) {
			System.err.println("Usage: java TestCreateReaderFromFile FILENAME");
			System.exit(1);
		}
	
		java.io.Reader reader = null;
		try {
			java.io.File file = new java.io.File(args[0]);
			reader = ReaderFactory.createBufferedReader(file);
			
			// Do whatever you want with the reader
		}
		finally {
			if (reader != null) {
				reader.close();
			}
		}
		
	}

}

Getting with maven

Put this dependency in your pom.xml


	com.github.albfernandez
	juniversalchardet
	2.5.0

Getting with gradle

Put this line in your build.gradle

implementation 'com.github.albfernandez:juniversalchardet:2.5.0'

Building from sources

    git clone https://github.com/albfernandez/juniversalchardet.git
    cd juniversalchardet
    mvn clean package

Related Works

  • jchardet http://jchardet.sourceforge.net/

jchardet is another Java port of the Mozilla's encoding dectection library. The main difference between jchardet and juniversalchardet is modules they are based on. jchardet is based on the "chardet" module that has long existed. juniversalchardet is based on the "universalchardet" module that is new and generally provides better accuracy on detection results.

  • juniversalchardet https://code.google.com/archive/p/juniversalchardet/

The original repository of this project

License

The library is subject to the Mozilla Public License Version 1.1.

Alternatively, the library may be used under the terms of either the GNU General Public License Version 2 or later, or the GNU Lesser General Public License 2.1 or later.

SPDX-License-Identifier: MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later

Compatibility

juniversalchardet 2.x requires JDK 7 or higher. juniversalchardet 3.x requieres JDK 11 or higher.

For Android:

  • juniversalchardet 2.0.x requires Android 4 (API Level 14)

  • juniversalchardet 2.1.x and newer requires Android 8 (API Level 26)

  • juniversalchardet 3.0.x and newer requires Android 12 (API Level 32)

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Javajava

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言