diff --git a/icu4j/src/com/ibm/icu/text/CharsetDetector.java b/icu4j/src/com/ibm/icu/text/CharsetDetector.java
new file mode 100644
index 00000000000..31e54ef8f9e
--- /dev/null
+++ b/icu4j/src/com/ibm/icu/text/CharsetDetector.java
@@ -0,0 +1,189 @@
+/**
+*******************************************************************************
+* Copyright (C) 2005, International Business Machines Corporation and *
+* others. All Rights Reserved. *
+*******************************************************************************
+*/
+package com.ibm.icu.text;
+
+import java.io.InputStream;
+import java.io.Reader;
+
+
+/**
+ *
+ * CharsetDetector
provides a facility for detecting the
+ * charset or encoding of character data in an unknown format.
+ * The input data can either be from an input stream or an array of bytes.
+ * The result of the detection operation is a list of possibly matching
+ * charsets, or, for simple use, you can just ask for a Java Reader that
+ * will will work over the input data.
+ *
this.setDeclaredEncoding(declaredEncoding).setText(in).detect().getReader();
+ *
+ * For the input stream that supplies the character data, markSupported()
+ * must be true; the charset detection will read a small amount of data,
+ * then return the stream to its original position via
+ * the InputStream.reset() operation. The exact amount that will
+ * be read depends on the characteristics of the data itself.
+ *
+ * Raise an exception if no charsets appear to match the input data.
+ *
+ * @param in The source of the byte data in the unknown charset.
+ *
+ * @param declaredEncoding A declared encoding for the data, if available,
+ * or null or an empty string if none is available.
+ */
+ public Reader getReader(InputStream in, String declaredEncoding) {
+ return null;
+ }
+
+ /**
+ * Autodetect the charset of an inputStream, and return a String
+ * containing the converted input data.
+ *
+ * This is a convenience method that is equivalent to
+ * this.setDeclaredEncoding(declaredEncoding).setText(in).detect().getString();
+ *
+ * Raise an exception if no charsets appear to match the input data.
+ *
+ * @param in The source of the byte data in the unknown charset.
+ *
+ * @param declaredEncoding A declared encoding for the data, if available,
+ * or null or an empty string if none is available.
+ */
+ public String getString(byte[] in, String declaredEncoding) {
+ return null;
+ }
+
+
+ /**
+ * Get the names of all char sets that can be recognized by the char set detector.
+ *
+ * @return an array of the names of all charsets that can be recognized
+ * by the charset detector.
+ */
+ public static String[] getAllDetectableCharsets() {
+ return null;
+ }
+
+
+}
diff --git a/icu4j/src/com/ibm/icu/text/CharsetMatch.java b/icu4j/src/com/ibm/icu/text/CharsetMatch.java
new file mode 100644
index 00000000000..50aa60ffd96
--- /dev/null
+++ b/icu4j/src/com/ibm/icu/text/CharsetMatch.java
@@ -0,0 +1,104 @@
+/**
+*******************************************************************************
+* Copyright (C) 2005, International Business Machines Corporation and *
+* others. All Rights Reserved. *
+*******************************************************************************
+*/
+package com.ibm.icu.text;
+
+import java.io.InputStream;
+import java.io.Reader;
+
+
+/**
+ * This class represents a charset that has been identified by a CharsetDetector
+ * as a possible encoding for a set of input data. From an instance of this
+ * class, you can ask for a confidence level in the charset identification,
+ * or for Java Reader or String to access the original byte data in Unicode form.
+ *
+ * Instances of this class are created only by CharsetDetectors.
+ */
+public class CharsetMatch {
+
+
+ /**
+ * Create a java.io.Reader for reading the Unicode character data corresponding
+ * to the original byte data supplied to the Charset detect operation.
+ *
+ * @return the Reader for the Unicode character data.
+ */
+ public Reader getReader() {
+ return null;
+ }
+
+
+
+ /**
+ * Create a Java String from Unicode character data corresponding
+ * to the original byte data supplied to the Charset detect operation.
+ *
+ * @return a String created from the converted input data.
+ */
+ public String getString() {
+ return null;
+
+ }
+ /**
+ * Create a Java String from Unicode character data corresponding
+ * to the original byte data supplied to the Charset detect operation.
+ * The length of the returned string is limited to the specified size;
+ * the string will be trunctated to this length if necessary. A limit value of
+ * zero or less is ignored, and treated as no limit.
+ *
+ * @param maxLength The maximium length of the String to be created.
+ * @return a String created from the converted input data.
+ */
+ public String getString(int maxLength) {
+ return null;
+
+ }
+
+ /**
+ * Get an indication of the confidence in the charset detected.
+ * Confidence values range from 0-100, with larger numbers indicating
+ * a better match of the input data to the characteristics of the
+ * charset.
+ *
+ * @return the confidence in the charset match
+ */
+ public int getConfidence() {
+ return 0;
+ }
+
+ /**
+ * Return an indication of what it was about input data that
+ * that caused this charset to be considered as a possible match.
+ * + * TODO: create a list of enum-like constants for the possible types of matches. + * + * @return the type of match found for this charset. + */ + public int getMatchType() { + return 0; + } + + + + /** + * Get the name of the detected charset. + * The name will be one that can be used with other APIs on the + * platform that accept charset names. It is the "Canonical name" + * as defined by the class java.nio.charset.Charset; for + * charsets that are registered with the IANA charset registry, + * this is the MIME-preferred registerd name. + * + * @see java.nio.charset.Charset + * @see java.io.InputStreamReader + * + * @return The name of the charset. + */ + public String getName() { + return ""; + } + +}