Konfiguracja znaków Shift-JIS w narzędziu Round Trip Safety Configuration
Kodowanie rodzime i Unicode
Ze względu na to, że kod Shift-JIS, jak i kod ASCII definiują znaki jednego języka, nazywamy je systemami kodowania rodzimego. Kod Unicode jest systemem kodowania znaków, który definiuje znaki dla wszystkich języków. W związku z tym, że oprogramowanie używane jest w globalnym, wielojęzycznym środowisku, znaki przeznaczone do przetwarzania przez komputery muszą być często konwertowane z systemów kodowania rodzimego na Unicode.
Bezpieczeństwo konwersji zwrotnej
Zagadnienia związane z konwersjami pomiędzy systemami kodowania rodzimego i Unicode określa się jako kwestie dotyczące bezpieczeństwa konwersji zwrotnej.
Za pomocą systemu Unicode opracowuje się aplikacje, które potrafią obsługiwać dane wejściowe w różnych językach jednocześnie. Dane wejściowe, wprowadzone przez użytkowników lub pobrane z baz danych, mogą zawierać znaki zakodowane w systemie kodowania rodzimego. Na przykład w systemie operacyjnym Microsoft Windows znaki w języku angielskim wprowadzane przez użytkownika są kodowane przy użyciu systemu Windows-1252.
Jeśli w aplikacji pojawią się znaki pochodzące z systemu kodowania rodzimego, zostają one przekształcone na Unicode na potrzeby ich przetwarzania. Po zakończeniu przetwarzania znaki mogą zostać ponownie przekształcone na system kodowania rodzimego.
W większości przypadków konwersja znaków odbywa się w sposób jednoznaczny, ponieważ każdy znak rodzimy jest odwzorowywany na pojedynczy znak Unicode. Jeśli w wyniku konwersji znaku w języku rodzimym na znak Unicode i z powrotem otrzymamy oryginalny znak, uznaje się, że znak może zostać bezpiecznie poddany konwersji zwrotnej.
Na przykład znak "A" może zostać bezpiecznie poddany konwersji zwrotnej w Windows-1252 zgodnie z poniższym opisem:
- Odpowiednikiem znaku "A" w Windows-1252 jest 0x41.
- Jest on przekształcony na U+0041 w systemie Unicode.
- Żaden inny znak kodu Windows-1252 nie może zostać przekształcony na ten sam znak Unicode, więc zawsze nastąpi konwersja z powrotem na 0x41.
Charakterystyka kodu Shift-JIS
Mimo iż znaki w większości systemów kodowania rodzimego mogą zostać bezpiecznie poddane konwersji zwrotnej, system kodowania Shift-JIS stanowi wyjątek. Około 400 znaków w kodzie Shift-JIS nie można bezpiecznie poddać konwersji zwrotnej, ponieważ wiele znaków z tej grupy można odwzorować na ten sam znak Unicode. Na przykład znaki kodu Shift-JIS: 0x8790 oraz 0x81e0 są konwertowane na ten sam znak Unicode: U+2252.
IBM Cognos Analytics i Shift-JIS
Produkt IBM® Cognos® Analytics korzysta z kodu Unicode. Bezpieczeństwo konwersji zwrotnej znaków jest niezbędne do zapewnienia dokładności danych w generowanych raportach.
Narzędzie Round Trip Safety Configuration zapewnia bezpieczeństwo konwersji zwrotnej znaków kodu Shift-JIS tylko wtedy, gdy używa się go w obu przypadkach, tj. do konwersji znaków:
- z Shift-JIS na Unicode
- z Unicode na Shift-JIS
Jeśli żądane są dane z bazy danych, która ma własny automatyczny mechanizm konwersji z Shift-JIS do formatu Unicode, IBM Cognos Analytics nie wywoła programu narzędziowego Round Trip Safety Configuration w celu przekształcenia znaków z kodu Unicode na Shift-JIS. Bezpieczeństwo konwersji zwrotnej znaków w danych nie może zostać w tym przypadku zapewnione.
Więcej informacji na temat programu narzędziowego Round Trip Safety Configuration znajduje się w sekcji The Round Trip Safety Configuration Utility.