CP932について
CP932 (Windows Codepage 932) について調べたことの備忘録。
- http://www2d.biglobe.ne.jp/~msyk/charcode/cp932/Windows-31J-charset.html
- http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT
- Unicode とdocomo PUAとgoogle PUAの対応 - https://code.google.com/p/emoji4unicode/source/browse/trunk/data/emoji4unicode.xml
- ドコモ仕様にのみ存在するアイコンについて
- EmojiSrc.txt と emoji4unicode.xml をつきあわせるとSJISとdocomo PUAの対応が得られるが、i-modeやiアプリなどいくつかのアイコンはUnicodeのコードポイントが未定義のため下記を参照する必要がある。※ docomo PUA、google PUAには定義されている
- 基本絵文字 - https://www.nttdocomo.co.jp/service/developer/make/content/pictograph/basic/index.html
- 拡張絵文字 https://www.nttdocomo.co.jp/service/developer/make/content/pictograph/extention/index.html
- http://charset.7jp.net/sjis.html
- http://euc.jp/i18n/charcode.ja.html
Java で任意のシフトJISコードのStringインスタンスを得るには下記のようにする。
int sjis_code = 0xFBFC; // U+9AD9 '髙' (はしごだか), シフトJIS 0xFBFC List<Integer> byteList = new ArrayList<Integer>(); int b0 = ((sjis_code >> 8) & 0xFF); int b1 = (sjis_code & 0xFF); if (0x40 <= b1 && b1 <= 0xFC) { if (b0 > 0) { byteList.add(b0); } byteList.add(b1); StringBuilder sb = new StringBuilder(); for (Integer b : byteList) { sb.append("%").append(String.format("%x", b)); } String encoded = sb.toString(); String symbol = new org.apache.commons.codec.net.URLCodec().decode(encoded, "ms932"); // symbol は有効なUnicodeの文字か、U+FFFD (Unicodeにマッピングできる文字がないとき)になる } else { // シフトJISの範囲外 }
- U+9AD9 '髙' (はしごだか) のUnicode コードポイント