Konfiguracja znaków Shift-JIS w narzędziu Round Trip Safety Configuration

Shift-JIS jest systemem kodowania znaków japońskich. Jest on odpowiednikiem ASCII - systemu kodowania znaków angielskich.

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.