// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2012, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** */ #ifndef __CSRMBCS_H #define __CSRMBCS_H #include "unicode/utypes.h" #if !UCONFIG_NO_CONVERSION #include "csrecog.h" U_NAMESPACE_BEGIN // "Character" iterated character class. // Recognizers for specific mbcs encodings make their "characters" available // by providing a nextChar() function that fills in an instance of IteratedChar // with the next char from the input. // The returned characters are not converted to Unicode, but remain as the raw // bytes (concatenated into an int) from the codepage data. // // For Asian charsets, use the raw input rather than the input that has been // stripped of markup. Detection only considers multi-byte chars, effectively // stripping markup anyway, and double byte chars do occur in markup too. // class IteratedChar : public UMemory { … }; class CharsetRecog_mbcs : public CharsetRecognizer { … }; /** * Shift-JIS charset recognizer. * */ class CharsetRecog_sjis : public CharsetRecog_mbcs { … }; /** * EUC charset recognizers. One abstract class that provides the common function * for getting the next character according to the EUC encoding scheme, * and nested derived classes for EUC_KR, EUC_JP, EUC_CN. * */ class CharsetRecog_euc : public CharsetRecog_mbcs { … }; /** * The charset recognize for EUC-JP. A singleton instance of this class * is created and kept by the public CharsetDetector class */ class CharsetRecog_euc_jp : public CharsetRecog_euc { … }; /** * The charset recognize for EUC-KR. A singleton instance of this class * is created and kept by the public CharsetDetector class */ class CharsetRecog_euc_kr : public CharsetRecog_euc { … }; /** * * Big5 charset recognizer. * */ class CharsetRecog_big5 : public CharsetRecog_mbcs { … }; /** * * GB-18030 recognizer. Uses simplified Chinese statistics. * */ class CharsetRecog_gb_18030 : public CharsetRecog_mbcs { … }; U_NAMESPACE_END #endif #endif /* __CSRMBCS_H */