native2ascii とは ACSII コードを別の文字コードへ変換する変換ツールであり、JDK (Java Development Kit) に含まれていた。 Java 8 までは日本語を含むプロパティファイルを読み込めなかったため、Unicode で書かれたプロパティファイルを Unicode エスケープ (\uXXXX) 形式の ASCII コードファイルへ変換する必要があった。 Java 9 からは Unicode のプロパティファイルを直接読み込めるようになったため、JDK に含まれていない。
引数を省略した場合は、標準入力から読み込み、標準出力へ出力する。
native2ascii
入力ファイルを引数に指定する。
native2ascii input
入力ファイルと出力ファイルを引数に指定する。
native2ascii input output
次に示す引数を native2ascii 変換ツールに指定できる。
次に示すオプションを native2ascii 変換ツールに指定できる。
標準入力から入力されたデータをUnicodeエスケープシーケンス形式に変換して標準出力へ出力する。
C:\> native2ascii
あ
\u3042
Java 8 までは native2ascii 変換ツールでプロパティファイルを UTF-8 へ変換する必要があった。
Java 9 からプロパティファイルに UTF-8 が使用できるようになった。このため、Java 9 以降の JDK には native2ascii 変換ツールが含まれないようになった。
説明の都合上 ASCII コード(7ビット)としたが、厳密には native2ascii が変換するコードは ISO 8859-1(8ビット)である。それぞれの違いを次に示す。
| コード | ASCII | ISO-8859-1 |
|---|---|---|
| 00 | NUL (null) | 未使用 |
| 01 | SOH (start of heading) | 未使用 |
| 02 | STX (start of tex) | 未使用 |
| 03 | ETX (end of text) | 未使用 |
| 04 | EOT (end of transmission) | 未使用 |
| 05 | ENQ (enquiry) | 未使用 |
| 06 | ACK (acknowledge) | 未使用 |
| 07 | BEL (bell) | 未使用 |
| 08 | BS (backspace) | 未使用 |
| 09 | TAB (horizontal tab) | 未使用 |
| 0A | LF (line feed) | 未使用 |
| 0B | VT (vertical tab) | 未使用 |
| 0C | FF (form feed) | 未使用 |
| 0D | CR (carriage return) | 未使用 |
| 0E | SO (shift out) | 未使用 |
| 0F | SI (shift in) | 未使用 |
| 10 | DLE (data link escape) | 未使用 |
| 11 | DC1 (device control 1) | 未使用 |
| 12 | DC2 (device control 2) | 未使用 |
| 13 | DC3 (device control 3) | 未使用 |
| 14 | DC4 (device control 4) | 未使用 |
| 15 | NAK (negative acknowledge) | 未使用 |
| 16 | SYN (synchronous idle) | 未使用 |
| 17 | ETB (end of transmission block) | 未使用 |
| 18 | CAN (cancel) | 未使用 |
| 19 | EM (end of medium) | 未使用 |
| 1A | SUB (substitute) | 未使用 |
| 1B | ESC (escape) | 未使用 |
| 1C | FS (file separator) | 未使用 |
| 1D | GS (group separator) | 未使用 |
| 1E | RS (record separator) | 未使用 |
| 1F | US (unit separator) | 未使用 |
| 20 | 空白 | 空白 |
| 21 | ! | ! |
| 22 | " | " |
| 23 | # | # |
| 24 | $ | $ |
| 25 | % | % |
| 26 | & | & |
| 27 | ' | ' |
| 28 | ( | ( |
| 29 | ) | ) |
| 2A | * | * |
| 2B | + | + |
| 2C | , | , |
| 2D | - | - |
| 2E | . | . |
| 2F | / | / |
| 30 | 0 | 0 |
| 31 | 1 | 1 |
| 32 | 2 | 2 |
| 33 | 3 | 3 |
| 34 | 4 | 4 |
| 35 | 5 | 5 |
| 36 | 6 | 6 |
| 37 | 7 | 7 |
| 38 | 8 | 8 |
| 39 | 9 | 9 |
| 3A | : | : |
| 3B | ; | ; |
| 3C | < | < |
| 3D | = | = |
| 3E | > | > |
| 3F | ? | ? |
| 40 | @ | @ |
| 41 | A | A |
| 42 | B | B |
| 43 | C | C |
| 44 | D | D |
| 45 | E | E |
| 46 | F | F |
| 47 | G | G |
| 48 | H | H |
| 49 | I | I |
| 4A | J | J |
| 4B | K | K |
| 4C | L | L |
| 4D | M | M |
| 4E | N | N |
| 4F | O | O |
| 50 | P | P |
| 51 | Q | Q |
| 52 | R | R |
| 53 | S | S |
| 54 | T | T |
| 55 | U | U |
| 56 | V | V |
| 57 | W | W |
| 58 | X | X |
| 59 | Y | Y |
| 5A | Z | Z |
| 5B | [ | [ |
| 5C | \ | \ |
| 5D | ] | ] |
| 5E | ^ | ^ |
| 5F | _ | _ |
| 60 | ` | ` |
| 61 | a | a |
| 62 | b | b |
| 63 | c | c |
| 64 | d | d |
| 65 | e | e |
| 66 | f | f |
| 67 | g | g |
| 68 | h | h |
| 69 | i | i |
| 6A | j | j |
| 6B | k | k |
| 6C | l | l |
| 6D | m | m |
| 6E | n | n |
| 6F | o | o |
| 70 | p | p |
| 71 | q | q |
| 72 | r | r |
| 73 | s | s |
| 74 | t | t |
| 75 | u | u |
| 76 | v | v |
| 77 | w | w |
| 78 | x | x |
| 79 | y | y |
| 7A | z | z |
| 7B | { | { |
| 7C | | | | |
| 7D | } | } |
| 7E | ~ | ~ |
| 7F | DEL (delete) | 未使用 |
| 80 | コード範囲外 | 未使用 |
| 81 | コード範囲外 | 未使用 |
| 82 | コード範囲外 | 未使用 |
| 83 | コード範囲外 | 未使用 |
| 84 | コード範囲外 | 未使用 |
| 85 | コード範囲外 | 未使用 |
| 86 | コード範囲外 | 未使用 |
| 87 | コード範囲外 | 未使用 |
| 88 | コード範囲外 | 未使用 |
| 89 | コード範囲外 | 未使用 |
| 8A | コード範囲外 | 未使用 |
| 8B | コード範囲外 | 未使用 |
| 8C | コード範囲外 | 未使用 |
| 8D | コード範囲外 | 未使用 |
| 8E | コード範囲外 | 未使用 |
| 8F | コード範囲外 | 未使用 |
| 90 | コード範囲外 | 未使用 |
| 91 | コード範囲外 | 未使用 |
| 92 | コード範囲外 | 未使用 |
| 93 | コード範囲外 | 未使用 |
| 94 | コード範囲外 | 未使用 |
| 95 | コード範囲外 | 未使用 |
| 96 | コード範囲外 | 未使用 |
| 97 | コード範囲外 | 未使用 |
| 98 | コード範囲外 | 未使用 |
| 99 | コード範囲外 | 未使用 |
| 9A | コード範囲外 | 未使用 |
| 9B | コード範囲外 | 未使用 |
| 9C | コード範囲外 | 未使用 |
| 9D | コード範囲外 | 未使用 |
| 9E | コード範囲外 | 未使用 |
| 9F | コード範囲外 | 未使用 |
| A0 | コード範囲外 | NBSP (Non-breaking space) |
| A1 | コード範囲外 | ¡ |
| A2 | コード範囲外 | ¢ |
| A3 | コード範囲外 | £ |
| A4 | コード範囲外 | ¤ |
| A5 | コード範囲外 | ¥ |
| A6 | コード範囲外 | ¦ |
| A7 | コード範囲外 | § |
| A8 | コード範囲外 | ¨ |
| A9 | コード範囲外 | © |
| AA | コード範囲外 | ª |
| AB | コード範囲外 | « |
| AC | コード範囲外 | ¬ |
| AD | コード範囲外 | SHY (Soft hyphen) |
| AE | コード範囲外 | ® |
| AF | コード範囲外 | ¯ |
| B0 | コード範囲外 | ° |
| B1 | コード範囲外 | ± |
| B2 | コード範囲外 | ² |
| B3 | コード範囲外 | ³ |
| B4 | コード範囲外 | ´ |
| B5 | コード範囲外 | µ |
| B6 | コード範囲外 | ¶ |
| B7 | コード範囲外 | · |
| B8 | コード範囲外 | ¸ |
| B9 | コード範囲外 | ¹ |
| BA | コード範囲外 | º |
| BB | コード範囲外 | » |
| BC | コード範囲外 | ¼ |
| BD | コード範囲外 | ½ |
| BE | コード範囲外 | ¾ |
| BF | コード範囲外 | ¿ |
| C0 | コード範囲外 | À |
| C1 | コード範囲外 | Á |
| C2 | コード範囲外 | Â |
| C3 | コード範囲外 | Ã |
| C4 | コード範囲外 | Ä |
| C5 | コード範囲外 | Å |
| C6 | コード範囲外 | Æ |
| C7 | コード範囲外 | Ç |
| C8 | コード範囲外 | È |
| C9 | コード範囲外 | É |
| CA | コード範囲外 | Ê |
| CB | コード範囲外 | Ë |
| CC | コード範囲外 | Ì |
| CD | コード範囲外 | Í |
| CE | コード範囲外 | Î |
| CD | コード範囲外 | Ï |
| D0 | コード範囲外 | Ð |
| D1 | コード範囲外 | Ñ |
| D2 | コード範囲外 | Ò |
| D3 | コード範囲外 | Ó |
| D4 | コード範囲外 | Ô |
| D5 | コード範囲外 | Õ |
| D6 | コード範囲外 | Ö |
| D7 | コード範囲外 | × |
| D8 | コード範囲外 | Ø |
| D9 | コード範囲外 | Ù |
| DA | コード範囲外 | Ú |
| DB | コード範囲外 | Û |
| DC | コード範囲外 | Ü |
| DD | コード範囲外 | Ý |
| DE | コード範囲外 | Þ |
| DF | コード範囲外 | ß |
| E0 | コード範囲外 | à |
| E1 | コード範囲外 | á |
| E2 | コード範囲外 | â |
| E3 | コード範囲外 | ã |
| E4 | コード範囲外 | ä |
| E5 | コード範囲外 | å |
| E6 | コード範囲外 | æ |
| E7 | コード範囲外 | ç |
| E8 | コード範囲外 | è |
| E9 | コード範囲外 | é |
| EA | コード範囲外 | ê |
| EB | コード範囲外 | ë |
| EC | コード範囲外 | ì |
| ED | コード範囲外 | í |
| EE | コード範囲外 | î |
| EF | コード範囲外 | ï |
| F0 | コード範囲外 | ð |
| F1 | コード範囲外 | ñ |
| F2 | コード範囲外 | ò |
| F3 | コード範囲外 | ó |
| F4 | コード範囲外 | ô |
| F5 | コード範囲外 | õ |
| F6 | コード範囲外 | ö |
| F7 | コード範囲外 | ÷ |
| F8 | コード範囲外 | ø |
| F9 | コード範囲外 | ù |
| FA | コード範囲外 | ú |
| FB | コード範囲外 | û |
| FC | コード範囲外 | ü |
| FD | コード範囲外 | ý |
| FE | コード範囲外 | þ |
| FF | コード範囲外 | ÿ |
| コード | ASCII | ISO-8859-1 |
Oracle (2021) native2ascii
Oracle (2021) Supported Encodings