[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Unikody, UTF-8 i Progress - Finał (druga częć )



Druga część z dołączoną tablicą konwersji

Przy okazji odniosę się do kwesti "globalnego sortowania".  Według mnie jest to technicznie możliwe, bo jeśli baza progress'owa będzie trzymała informacje zapisane w Unikodzie, który zwiera znaki z różnych alfabetów, w tym bardzo egzotycznych, to można stworzyć Collation Table, która ustali ich porządek wedlug życzenia programisty. Z drugiej strony oglądając istniejące tablice Collation i czytając na ich temat w dokumentacji wszędzie mówi sie o tablicach Collation dla kodów jednobajtowych., co z kolei dla Unikodu jest niewystraczające. Być może jest to tylko brak opisu jak taką tablicę stworzyć, bądź też nie przewidzino jeszcze takiej możliwości (mam wersję 9.0), chociaż dopuszczając bazy i cpinternal UTF-8 powinno to być możliwe. Pomijam już kwestę wyznaczenia kolejności sortowania poszczególnych znaków, bo tutaj może być ogromny problem, nawet jeśli idzie o litery zbudowane na bazie łacińskiego alfabetu (o alfabetach chińskich czy arabskich, to lepiej nie wspominać). Często litera o tym samym wyglądzie (najczęściej z jakimiś ogonkami, kreskami, daszkami, itp) w jednym alfabecie występuje na poczatku alfabetu, zaś w innym na końcu i jak tu zadowolić wszystkich ?

Przepraszam za zbyt długie "przynudzanie" (nawet program obsługi poczty ma tego dosyć),  pozdrawiam,

                   
Henryk Jusza               mailto:henju@pg.gda.pl
--------------------------------------------------------------
Ośrodek Informatyczny Politechniki Gdańskiej
Pracownia Rozwoju Oprogramowania
tel (058) 347-28-01          fax (058) 347-24-63

#---------------------------------------------------------------------------
# HJ - Conversion table for code page 1250 to code page UTF-8 
CONVERT
SOURCE-NAME "1250"
TARGET-NAME "UTF-8"
TYPE "19"
  /*000-015*/  000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015
  /*016-031*/  016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
  /*032-047*/  032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047
  /*048-063*/  048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063
  /*064-079*/  064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079
  /*080-095*/  080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095
  /*096-111*/  096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111
  /*112-127*/  112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
  /*128-143*/  128 129 130 131 132 133 134 135 136 137 138 139 0x15A 141 142 0x179
  /*144-159*/  144 145 146 147 148 149 150 151 152 153 154 155 0x15B 157 158 0x17A
  /*160-175*/  160 161 162 0x141 164 0x104 166 167 168 169 170 171 172 173 174 0x17B
  /*176-191*/  176 177 178 0x142 180 181 182 183 184 0x105 186 187 188 189 190 0x17C
  /*192-207*/  192 193 194 195 196 197 0x106 199 200 201 0x118 203 204 205 206 207
  /*208-223*/  208 0x143 210 0x0D3 212 213 214 215 216 217 218 219 220 221 222 223
  /*224-239*/  224 225 226 227 228 229 0x107 231 232 233 0x119 235 236 237 238 239
  /*240-255*/  240 0x144 242 0x0F3 244 245 246 247 248 249 250 251 252 253 254 255
ENDTABLE
ENDCONVERT