java.lang.Object | ||
↳ | com.microstrategy.webapi.StreamingContext | |
↳ | com.microstrategy.web.app.transforms.EncodeSpecialStreamingContext |
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
protected ByteBuffer | byteBuffIn | ||||||||||
protected ByteBuffer | byteBuffOut | ||||||||||
protected CharBuffer | charBuff | ||||||||||
protected CharsetDecoder | decoder | ||||||||||
protected String | encodeCharsetName | ||||||||||
protected CharsetEncoder | encoder | ||||||||||
protected ICharsetModifiable | modifier | ||||||||||
protected OutputStream | out |
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
EncodeSpecialStreamingContext(ContainerServices cs, String encodeName) |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
void |
consume(String decodeCharsetName, int contentLength, InputStream src)
Request to a consumer to consume specified number of bytes from the input stream
| ||||||||||
void |
consume(int contentLength, InputStream src)
Request to a consumer to consume specified number of bytes from the input stream
| ||||||||||
void | flush() |
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
void |
encodeSpecialCharacter(byte b1, byte b2)
Encodes one character as Shift JIS
This is done to special-encode some problematic characters into SJIS because they are not properly encoded by Java. | ||||||||||
void | transcode(byte[] data, int range) |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() |
Request to a consumer to consume specified number of bytes from the input stream
decodeCharsetName | decoder charset name |
---|---|
contentLength | number of bytes to consume. |
src | source input stream |
Exception |
---|
Request to a consumer to consume specified number of bytes from the input stream
contentLength | number of bytes to consume. |
---|---|
src | source input stream |
Exception |
---|
CharacterCodingException | |
---|---|
IOException |
Encodes one character as Shift JIS
This is done to special-encode some problematic characters into SJIS because they are not properly encoded by Java.
For more information see: http://www-01.ibm.com/support/docview.wss?rs=133&context=SS5RG2&dc=DB560&dc=DB520&uid=swg21064197&loc=en_US&cs=UTF-8&lang=en&rss=ct133rational
In addition to the characters mentioned on this link we also special encode circled numbers from 1 to 20 which also break in Japanese
This can be overwritten to encode extra characters
The recommended overwritten code snippet:
protected void encodeShiftJISCharacter(byte b1, byte b2) throws UnsupportedEncodingException {
if (b1 == 0x15 && b2 == 0x20) {//double dash
pushSpecialChar((byte) 0x81, (byte) 0x5c)
} else {
super.encodeShiftJISCharactor(b1,b2);
}
}
IOException | |
---|---|
UnsupportedEncodingException |
CharacterCodingException | |
---|---|
IOException |