• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java UCSReader类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: setEncoding

import com.sun.org.apache.xerces.internal.impl.io.UCSReader; //导入依赖的package包/类
/**
 * 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,代码行数:76,代码来源:XMLEntityScanner.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java ValidationState类代码示例发布时间:2022-05-23
下一篇:
Java AvailabilitySet类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap