Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 17 jdk.charsets.jmod - Charsets Module
JDK 17 jdk.charsets.jmod is the JMOD file for JDK 17 Charsets module.
JDK 17 Charsets module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\jdk.charsets.jmod.
JDK 17 Charsets module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Charsets module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\jdk.charsets.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ sun/nio/cs/ext/ISO2022_KR.java
/* * Copyright (c) 2002, 2021, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ /* */ package sun.nio.cs.ext; import java.nio.charset.Charset; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetEncoder; import java.nio.charset.CoderResult; import sun.nio.cs.HistoricallyNamedCharset; import sun.nio.cs.*; public class ISO2022_KR extends ISO2022 implements HistoricallyNamedCharset { private static class Holder { private static final Charset ksc5601_cs = new EUC_KR(); } public ISO2022_KR() { super("ISO-2022-KR", ExtendedCharsets.aliasesFor("ISO-2022-KR")); } public boolean contains(Charset cs) { // overlapping repertoire of EUC_KR, aka KSC5601 return ((cs instanceof EUC_KR) || (cs.name().equals("US-ASCII")) || (cs instanceof ISO2022_KR)); } public String historicalName() { return "ISO2022KR"; } public CharsetDecoder newDecoder() { return new Decoder(this); } public CharsetEncoder newEncoder() { return new Encoder(this); } private static class Decoder extends CharsetDecoder { private static final byte[] SOD = new byte[] {'$', ')', 'C' }; private static final DoubleByte.Decoder KSC5601 = (DoubleByte.Decoder) new EUC_KR().newDecoder(); private static final byte ISO_ESC = 0x1b; private static final byte ISO_SI = 0x0f; private static final byte ISO_SO = 0x0e; private static final byte ISO_SS2_7 = 0x4e; private static final byte ISO_SS3_7 = 0x4f; private static final byte MSB = (byte)0x80; private static final char REPLACE_CHAR = '\uFFFD'; private static final byte minDesignatorLength = 3; private static final byte SOFlag = 0; private static final byte SS2Flag = 1; private static final byte SS3Flag = 2; private boolean shiftout; private Decoder(Charset cs) { super(cs, 1.0f, 1.0f); } protected void implReset() { shiftout = false; } private char decode(byte byte1, byte byte2, byte shiftFlag) { if (shiftFlag == SOFlag) { return KSC5601.decodeDouble((byte1 | MSB) & 0xFF, (byte2 | MSB) & 0xFF); } return REPLACE_CHAR; } private boolean findDesig(byte[] in, int sp, int sl) { if (sl - sp >= SOD.length) { int j = 0; while (j < SOD.length && in[sp + j] == SOD[j]) { j++; } return j == SOD.length; } return false; } private boolean findDesigBuf(ByteBuffer in) { if (in.remaining() >= SOD.length) { int j = 0; in.mark(); while (j < SOD.length && in.get() == SOD[j]) { j++; } if (j == SOD.length) return true; in.reset(); } return false; } private CoderResult decodeArrayLoop(ByteBuffer src, CharBuffer dst) { byte[] sa = src.array(); int sp = src.arrayOffset() + src.position(); int sl = src.arrayOffset() + src.limit(); char[] da = dst.array(); int dp = dst.arrayOffset() + dst.position(); int dl = dst.arrayOffset() + dst.limit(); int b1, b2, b3; try { while (sp < sl) { b1 = sa[sp] & 0xff; int inputSize = 1; switch (b1) { case ISO_SO: shiftout = true; inputSize = 1; break; case ISO_SI: shiftout = false; inputSize = 1; break; case ISO_ESC: if (sl - sp - 1 < minDesignatorLength) return CoderResult.UNDERFLOW; if (findDesig(sa, sp + 1, sl)) { inputSize = SOD.length + 1; break; } if (sl - sp < 2) return CoderResult.UNDERFLOW; b1 = sa[sp + 1]; switch (b1) { case ISO_SS2_7: if (sl - sp < 4) return CoderResult.UNDERFLOW; b2 = sa[sp +2]; b3 = sa[sp +3]; if (dl - dp <1) return CoderResult.OVERFLOW; da[dp] = decode((byte)b2, (byte)b3, SS2Flag); dp++; inputSize = 4; break; case ISO_SS3_7: if (sl - sp < 4) return CoderResult.UNDERFLOW; b2 = sa[sp + 2]; b3 = sa[sp + 3]; if (dl - dp < 1) return CoderResult.OVERFLOW; da[dp] = decode((byte)b2, (byte)b3, SS3Flag); dp++; inputSize = 4; break; default: return CoderResult.malformedForLength(2); } break; default: if (dl - dp < 1) return CoderResult.OVERFLOW; if (!shiftout) { da[dp++]=(char)(sa[sp] & 0xff); } else { if (dl - dp < 1) return CoderResult.OVERFLOW; if (sl - sp < 2) return CoderResult.UNDERFLOW; b2 = sa[sp+1] & 0xff; da[dp++] = decode((byte)b1, (byte)b2, SOFlag); inputSize = 2; } break; } sp += inputSize; } return CoderResult.UNDERFLOW; } finally { src.position(sp - src.arrayOffset()); dst.position(dp - dst.arrayOffset()); } } private CoderResult decodeBufferLoop(ByteBuffer src, CharBuffer dst) { int mark = src.position(); int b1, b2, b3; try { while (src.hasRemaining()) { b1 = src.get(); int inputSize = 1; switch (b1) { case ISO_SO: shiftout = true; break; case ISO_SI: shiftout = false; break; case ISO_ESC: if (src.remaining() < minDesignatorLength) return CoderResult.UNDERFLOW; if (findDesigBuf(src)) { inputSize = SOD.length + 1; break; } if (src.remaining() < 1) return CoderResult.UNDERFLOW; b1 = src.get(); switch(b1) { case ISO_SS2_7: if (src.remaining() < 2) return CoderResult.UNDERFLOW; b2 = src.get(); b3 = src.get(); if (dst.remaining() < 1) return CoderResult.OVERFLOW; dst.put(decode((byte)b2, (byte)b3, SS2Flag)); inputSize = 4; break; case ISO_SS3_7: if (src.remaining() < 2) return CoderResult.UNDERFLOW; b2 = src.get(); b3 = src.get(); if (dst.remaining() < 1) return CoderResult.OVERFLOW; dst.put(decode((byte)b2, (byte)b3, SS3Flag)); inputSize = 4; break; default: return CoderResult.malformedForLength(2); } break; default: if (dst.remaining() < 1) return CoderResult.OVERFLOW; if (!shiftout) { dst.put((char)(b1 & 0xff)); } else { if (src.remaining() < 1) return CoderResult.UNDERFLOW; b2 = src.get() & 0xff; dst.put(decode((byte)b1, (byte)b2, SOFlag)); inputSize = 2; } break; } mark += inputSize; } return CoderResult.UNDERFLOW; } catch (Exception e) { e.printStackTrace(); return CoderResult.OVERFLOW; } finally { src.position(mark); } } protected CoderResult decodeLoop(ByteBuffer src, CharBuffer dst) { if (src.hasArray() && dst.hasArray()) return decodeArrayLoop(src, dst); else return decodeBufferLoop(src, dst); } } private static class Encoder extends ISO2022.Encoder { private static final byte[] SOD = new byte[] {'$', ')', 'C' }; public Encoder(Charset cs) { super(cs); SODesig = SOD; try { ISOEncoder = Holder.ksc5601_cs.newEncoder(); } catch (Exception e) { } } public boolean canEncode(char c) { return (ISOEncoder.canEncode(c)); } } }
⏎ sun/nio/cs/ext/ISO2022_KR.java
Or download all of them as a single archive file:
File name: jdk.charsets-17.0.5-src.zip File size: 2039497 bytes Release date: 2022-09-13 Download
⇒ JDK 17 jdk.compiler.jmod - Compiler Tool
2023-10-15, 11172👍, 0💬
Popular Posts:
maven-core-3.8.6.jar is the JAR file for Apache Maven 3.8.6 Core module. Apache Maven is a software ...
What Is poi-scratchpad-3.5.jar? poi-scratchpad-3.5.jar is one of the JAR files for Apache POI 3.5, w...
Apache Ant Source Code Files are inside the Apache Ant source package file like apache-ant-1.10.10-s...
Jetty provides an HTTP server, HTTP client, and javax.servlet container. These components are open s...
Apache Log4j 1.2 Bridge allows applications coded to use Log4j 1.2 API to use Log4j 2 instead. Bytec...