Do poprawnej obsługi danych dwukierunkowych na różnych platformach wymagane są następujące atrybuty BiDi:
- Typ tekstu (LOGICAL lub VISUAL) - Kształtowanie (SHAPED lub UNSHAPED) - Orientacja (RIGHT-TO-LEFT lub LEFT-TO-RIGHT) - Kształt numeryczny (ARABIC lub HINDI) - Wymiana symetryczna (YES lub NO)
Ponieważ wartości domyślne na różnych platformach są różne, problemy pojawiają się, gdy dane DB2 są przesyłane między platformami. Na przykład platformy Windows używają danych LOGICAL UNSHAPED, podczas gdy dane w systemie OS/390 mają zazwyczaj format SHAPED VISUAL. Dlatego bez obsługi tych atrybutów dane wysyłane z DB2 Universal Database for OS/390 do DB2 UDB na stacji roboczej z 32-bitowym systemem operacyjnym Windows są wyświetlane niepoprawnie.
W DB2 UDB zdefiniowano i zaimplementowano następujące dwukierunkowe identyfikatory kodowanego zestawu znaków (CCSID):
CCSID - Strona - Typ - kodowa - łańcucha -------+--------+---------- 00420 420 4 00424 424 4 08612 420 5 08616 424 6 12708 420 7 X'3F00' 856 4 X'3F01' 862 4 X'3F02' 916 4 X'3F03' 424 5 X'3F04' 856 5 X'3F05' 862 5 X'3F06' 916 5 X'3F07' 1255 5 X'3F08' 1046 5 X'3F09' 864 5 X'3F0A' 1089 5 X'3F0B' 1256 5 X'3F0C' 856 6 X'3F0D' 862 6 X'3F0E' 916 6 X'3F0F' 1255 6 X'3F10' 420 6 X'3F11' 864 6 X'3F12' 1046 6 X'3F13' 1089 6 X'3F14' 1256 6 X'3F15' 424 8 X'3F16' 856 8 X'3F17' 862 8 X'3F18' 916 8 X'3F19' 420 8 X'3F1A' 420 9 X'3F1B' 424 10 X'3F1C' 856 10 X'3F1D' 862 10 X'3F1E' 916 10 X'3F1F' 1255 10
X'3F20' 424 11 X'3F21' 856 11 X'3F22' 862 11 X'3F23' 916 11 X'3F24' 1255 11
Gdzie Typy łańcucha CDRA zdefiniowano w sposób następujący: :
Typ - Typ - Kształt - Orientacja - Kształto - Wymiana łańcucha -tekstu - numeryczny- - wanie - symetryczna ---------+-------+------------+-------------+-----------+------------- 4 Visual Arabic LTR Shaped OFF 5 Implicit Arabic LTR Unshaped ON 6 Implicit Arabic RTL Unshaped ON 7(*) Visual Arabic Contextual(*) Unshaped-Lig OFF 8 Visual Arabic RTL Shaped OFF 9 Visual Passthru RTL Shaped ON 10 Implicit Contextual-L ON 11 Implicit Contextual-R ON
Uwaga: | Pole ma orientację "od lewej do prawej" (LTR), gdy pierwszy znak alfabetyczny należy do zestawu Latin, a orientację "od prawej do lewej" (RTL), gdy jest to znak dwukierunkowy (RTL). Znaki są nieukształtowane, ale ligatury LamAlef są zachowane i nie są rozbijane na składowe. |