当前位置: 首页>>代码示例>>Java>>正文


Java UCSReader.UCS4BE属性代码示例

本文整理汇总了Java中com.sun.org.apache.xerces.internal.impl.io.UCSReader.UCS4BE属性的典型用法代码示例。如果您正苦于以下问题:Java UCSReader.UCS4BE属性的具体用法?Java UCSReader.UCS4BE怎么用?Java UCSReader.UCS4BE使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在com.sun.org.apache.xerces.internal.impl.io.UCSReader的用法示例。


在下文中一共展示了UCSReader.UCS4BE属性的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: setEncoding

/**
 * Sets the encoding of the scanner. This method is used by the
 * scanners if the XMLDecl or TextDecl line contains an encoding
 * pseudo-attribute.
 * <p>
 * <strong>Note:</strong> The underlying character reader on the
 * current entity will be changed to accomodate the new encoding.
 * However, the new encoding is ignored if the current reader was
 * not constructed from an input stream (e.g. an external entity
 * that is resolved directly to the appropriate java.io.Reader
 * object).
 *
 * @param encoding The IANA encoding name of the new encoding.
 *
 * @throws IOException Thrown if the new encoding is not supported.
 *
 * @see com.sun.org.apache.xerces.internal.util.EncodingMap
 */
public final void setEncoding(String encoding) throws IOException {

    if (DEBUG_ENCODINGS) {
        System.out.println("$$$ setEncoding: "+encoding);
    }

    if (fCurrentEntity.stream != null) {
        // if the encoding is the same, don't change the reader and
        // re-use the original reader used by the OneCharReader
        // NOTE: Besides saving an object, this overcomes deficiencies
        //       in the UTF-16 reader supplied with the standard Java
        //       distribution (up to and including 1.3). The UTF-16
        //       decoder buffers 8K blocks even when only asked to read
        //       a single char! -Ac
        if (fCurrentEntity.encoding == null ||
                !fCurrentEntity.encoding.equals(encoding)) {
            // UTF-16 is a bit of a special case.  If the encoding is UTF-16,
            // and we know the endian-ness, we shouldn't change readers.
            // If it's ISO-10646-UCS-(2|4), then we'll have to deduce
            // the endian-ness from the encoding we presently have.
            if(fCurrentEntity.encoding != null && fCurrentEntity.encoding.startsWith("UTF-16")) {
                String ENCODING = encoding.toUpperCase(Locale.ENGLISH);
                if(ENCODING.equals("UTF-16")) return;
                if(ENCODING.equals("ISO-10646-UCS-4")) {
                    if(fCurrentEntity.encoding.equals("UTF-16BE")) {
                        fCurrentEntity.reader = new UCSReader(fCurrentEntity.stream, UCSReader.UCS4BE);
                    } else {
                        fCurrentEntity.reader = new UCSReader(fCurrentEntity.stream, UCSReader.UCS4LE);
                    }
                    return;
                }
                if(ENCODING.equals("ISO-10646-UCS-2")) {
                    if(fCurrentEntity.encoding.equals("UTF-16BE")) {
                        fCurrentEntity.reader = new UCSReader(fCurrentEntity.stream, UCSReader.UCS2BE);
                    } else {
                        fCurrentEntity.reader = new UCSReader(fCurrentEntity.stream, UCSReader.UCS2LE);
                    }
                    return;
                }
            }
            // wrap a new reader around the input stream, changing
            // the encoding
            if (DEBUG_ENCODINGS) {
                System.out.println("$$$ creating new reader from stream: "+
                        fCurrentEntity.stream);
            }
            //fCurrentEntity.stream.reset();
            fCurrentEntity.reader = createReader(fCurrentEntity.stream, encoding, null);
            fCurrentEntity.encoding = encoding;

        } else {
            if (DEBUG_ENCODINGS)
                System.out.println("$$$ reusing old reader on stream");
        }
    }

}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:75,代码来源:XMLEntityScanner.java


注:本文中的com.sun.org.apache.xerces.internal.impl.io.UCSReader.UCS4BE属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。