New upstream version 3.0.11.33637.ds4
Damyan Ivanov
1 year, 6 months ago
719 | 719 | # Either enables or disables the "TCP Loopback Fast Path" feature (SIO_LOOPBACK_FAST_PATH). |
720 | 720 | # Applies to Windows (version 8/2012 or higher) only. |
721 | 721 | # |
722 | # Type: Boolean, default 1 (true) | |
723 | # | |
724 | #TcpLoopbackFastPath = 1 | |
722 | # Note: Microsoft has deprecated it and not recommended to use anymore. | |
723 | # To be removed in future Firebird versions. | |
724 | # | |
725 | # Type: Boolean, default 0 (false) | |
726 | # | |
727 | #TcpLoopbackFastPath = 0 | |
725 | 728 | |
726 | 729 | # |
727 | 730 | # Allows setting of IPV6_V6ONLY socket option. If enabled, IPv6 sockets |
153 | 153 | </ResourceCompile> |
154 | 154 | <Link> |
155 | 155 | <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions> |
156 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;fbclient.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
157 | <AdditionalLibraryDirectories>..\..\..\temp\$(Platform)\$(Configuration)\fbclient;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> | |
156 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
157 | <AdditionalLibraryDirectories> | |
158 | </AdditionalLibraryDirectories> | |
158 | 159 | <SubSystem>Console</SubSystem> |
159 | 160 | <ProfileGuidedDatabase> |
160 | 161 | </ProfileGuidedDatabase> |
177 | 178 | <Culture>0x0c0a</Culture> |
178 | 179 | </ResourceCompile> |
179 | 180 | <Link> |
180 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;fbclient.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
181 | <AdditionalLibraryDirectories>..\..\..\temp\$(Platform)\$(Configuration)\fbclient;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> | |
181 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
182 | <AdditionalLibraryDirectories> | |
183 | </AdditionalLibraryDirectories> | |
182 | 184 | <SubSystem>Console</SubSystem> |
183 | 185 | <ProfileGuidedDatabase> |
184 | 186 | </ProfileGuidedDatabase> |
157 | 157 | </ResourceCompile> |
158 | 158 | <Link> |
159 | 159 | <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions> |
160 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;fbclient.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
161 | <AdditionalLibraryDirectories>..\..\..\temp\$(Platform)\$(Configuration)\fbclient;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> | |
160 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
161 | <AdditionalLibraryDirectories> | |
162 | </AdditionalLibraryDirectories> | |
162 | 163 | <SubSystem>Console</SubSystem> |
163 | 164 | <ProfileGuidedDatabase> |
164 | 165 | </ProfileGuidedDatabase> |
181 | 182 | <Culture>0x0c0a</Culture> |
182 | 183 | </ResourceCompile> |
183 | 184 | <Link> |
184 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;fbclient.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
185 | <AdditionalLibraryDirectories>..\..\..\temp\$(Platform)\$(Configuration)\fbclient;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> | |
185 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
186 | <AdditionalLibraryDirectories> | |
187 | </AdditionalLibraryDirectories> | |
186 | 188 | <SubSystem>Console</SubSystem> |
187 | 189 | <ProfileGuidedDatabase> |
188 | 190 | </ProfileGuidedDatabase> |
157 | 157 | </ResourceCompile> |
158 | 158 | <Link> |
159 | 159 | <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions> |
160 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;fbclient.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
161 | <AdditionalLibraryDirectories>..\..\..\temp\$(Platform)\$(Configuration)\fbclient;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> | |
160 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
161 | <AdditionalLibraryDirectories> | |
162 | </AdditionalLibraryDirectories> | |
162 | 163 | <SubSystem>Console</SubSystem> |
163 | 164 | <ProfileGuidedDatabase> |
164 | 165 | </ProfileGuidedDatabase> |
181 | 182 | <Culture>0x0c0a</Culture> |
182 | 183 | </ResourceCompile> |
183 | 184 | <Link> |
184 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;fbclient.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
185 | <AdditionalLibraryDirectories>..\..\..\temp\$(Platform)\$(Configuration)\fbclient;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> | |
185 | <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
186 | <AdditionalLibraryDirectories> | |
187 | </AdditionalLibraryDirectories> | |
186 | 188 | <SubSystem>Console</SubSystem> |
187 | 189 | <ProfileGuidedDatabase> |
188 | 190 | </ProfileGuidedDatabase> |
0 | PURPOSE : To explain the makefile system in firebird2. | |
1 | ||
2 | STATUS: Still a work in progress (both the makefiles, and this document) | |
3 | ||
4 | AUTHORS: Mark O'Donohue mark.odonohue@luduwg.edu.au | |
5 | ||
6 | COPYRIGHT: All rights retained by authors. | |
7 | For distribution with Firebird source | |
8 | (Someone who knows this legal stuff will update it later) | |
9 | ||
10 | OVERVIEW | |
11 | ||
12 | The new makefiles were created to fit in with autoconf, to place the object | |
13 | files in seperate directories to the source files and to simplify the build | |
14 | process. | |
15 | ||
16 | It really does rely on using gnu make so that is the best version to use. | |
17 | ||
18 | ||
19 | THE REALLY QUICK INTRO | |
20 | ||
21 | For linux this is how I do a compile (classic is only one currently) | |
22 | ||
23 | autoconf | |
24 | ./configure | |
25 | $cd src | |
26 | $make > make.log 2>&1 ; cat make.log | grep -v warning > make2.log ; vi make2.log | |
27 | ||
28 | For an install checkout | |
29 | ||
30 | $make install | |
31 | ||
32 | it will list your options - but also needs some work. | |
33 | ||
34 | ||
35 | MAKEFILE | |
36 | ||
37 | Makefiles are found in builds/posix | |
38 | ||
39 | make.rules | |
40 | make.defaults | |
41 | make.shared.variables | |
42 | ||
43 | prefix.xxx (where xxx = platform) | |
44 | ||
45 | In src/make.new there are a number of Makefile.in.xxx files and some make.xxx | |
46 | ||
47 | ||
48 | STRUCTURE OF MAKEFILE.IN.XXX | |
49 | ||
50 | ||
51 | Each Makefile.in.xxx has the following somewhere near the top: | |
52 | ||
53 | include make.defaults | |
54 | include make.platform | |
55 | include make.rules | |
56 | include make.shared.variables | |
57 | ||
58 | ... | |
59 | ... | |
60 | ||
61 | ||
62 | These are: | |
63 | ||
64 | make.defaults | |
65 | ||
66 | This contains default values for macros that it is likely that the user may | |
67 | want to override. | |
68 | ||
69 | ||
70 | make.platform | |
71 | ||
72 | This file is created from the prefix.xxx where xxx=linux/darwin/freebsd etc. | |
73 | It provides a spot for the user to override or repalce macros that have been | |
74 | defined in make.defaults. In addition extra dependancies can be added to | |
75 | build extra targets. | |
76 | ||
77 | ||
78 | make.rules | |
79 | ||
80 | This contains the default rules for compiling the system components. Such as | |
81 | directory macros CXX etc. | |
82 | ||
83 | ||
84 | make.shared.variables | |
85 | ||
86 | This file contains the defintion of macros that are shared across all of the | |
87 | modules. The only set that are needed are those files that are contained in | |
88 | the libgds.a/so library since files from many modules contribute to the library. | |
89 | ||
90 | ||
91 | ||
92 | CREATING OBJECT FILES | |
93 | ||
94 | ||
95 | In the makefiles the object files are of two sorts .o static and .lo | |
96 | which are suitable for shared libraries. On most systems the source | |
97 | files need to be compiled twice to create both .o and .lo files. F | |
98 | Fortunately the program libtool can help work with this. | |
99 | ||
100 | The general format of .o file dependancies is: | |
101 | ||
102 | SERVER_Sources = server.cpp | |
103 | SERVER_Objects = $(SERVER_Sources:%.cpp=$(OBJ)/%.o) | |
104 | ||
105 | ||
106 | So the .o files live in $(OBJ) where: | |
107 | OBJ = $(ROOT)/gen/$ModuleName | |
108 | ||
109 | ||
110 | Each Makefile also specifies an AllObjects and Dependancies macro which | |
111 | identified all the objects that this Makefile is to create and the name | |
112 | of the dependency files generated for those objects. | |
113 | ||
114 | AllObjects = $(Alice_Objects) | |
115 | ||
116 | ||
117 | FILE DEPENDANCIES | |
118 | ||
119 | Include file dependancy information is automatically generated by the gcc | |
120 | compiler. | |
121 | ||
122 | The gcc compiler has a flag -MMD which will generate in addition to the | |
123 | .o file a .d file which contains the dependancy chain of #includes required | |
124 | for the program. These are then edited and stored in the $(OBJ) directory and | |
125 | are included in the bottom line of the makefile with | |
126 | ||
127 | Dependencies = $(All_Objects:.o=.d) | |
128 | ||
129 | include $(Dependancies) | |
130 | ||
131 | PLATFORM SUBDIRS OF JRD | |
132 | ||
133 | Please, forget about jrd/os/* in makefiles! Pretend that all files from | |
134 | there are placed in jrd/ itself. A little trick in make.rules will find | |
135 | files for your platform automatically. |
287 | 287 | |
288 | 288 | TraNumber id; |
289 | 289 | tdr* trans; |
290 | UCHAR* ptr = buffer; | |
291 | bool flag = true; | |
292 | ||
293 | while (flag) | |
294 | { | |
295 | const USHORT item = *ptr++; | |
296 | const USHORT length = (USHORT) gds__vax_integer(ptr, 2); | |
297 | ptr += 2; | |
290 | ||
291 | for (Firebird::ClumpletReader p(Firebird::ClumpletReader::InfoResponse, buffer, sizeof(buffer)); | |
292 | !p.isEof(); p.moveNext()) | |
293 | { | |
294 | UCHAR item = p.getClumpTag(); | |
295 | if (item == isc_info_end) | |
296 | break; | |
297 | ||
298 | const USHORT length = (USHORT) p.getClumpLength(); | |
298 | 299 | switch (item) |
299 | 300 | { |
300 | 301 | case isc_info_limbo: |
301 | id = isc_portable_integer(ptr, length); | |
302 | id = p.getBigInt(); | |
302 | 303 | if (switches & (sw_commit | sw_rollback | sw_two_phase | sw_prompt)) |
303 | 304 | { |
304 | 305 | TDR_reconnect_multiple(handle, id, name, switches); |
305 | ptr += length; | |
306 | 306 | break; |
307 | 307 | } |
308 | 308 | if (!tdgbl->uSvc->isService()) |
325 | 325 | tdgbl->uSvc->putSInt64(isc_spb_single_tra_id_64, id); |
326 | 326 | else |
327 | 327 | tdgbl->uSvc->putSLong(isc_spb_single_tra_id, (SLONG) id); |
328 | ptr += length; | |
329 | 328 | break; |
330 | 329 | |
331 | 330 | case isc_info_truncated: |
335 | 334 | // msg 72: More limbo transactions than fit. Try again |
336 | 335 | // And how it's going to retry with a bigger buffer if the buffer is fixed size? |
337 | 336 | } |
338 | // fall through | |
339 | ||
340 | case isc_info_end: | |
341 | flag = false; | |
342 | 337 | break; |
343 | 338 | |
344 | 339 | default: |
117 | 117 | * |
118 | 118 | **************************************/ |
119 | 119 | pthread_t thread; |
120 | pthread_t* p_thread = p_handle ? p_handle : &thread; | |
120 | 121 | pthread_attr_t pattr; |
121 | 122 | int state; |
122 | 123 | |
123 | 124 | #if defined (LINUX) || defined (FREEBSD) |
124 | if (state = pthread_create(&thread, NULL, THREAD_ENTRYPOINT, THREAD_ARG)) | |
125 | if ((state = pthread_create(p_thread, NULL, THREAD_ENTRYPOINT, THREAD_ARG))) | |
125 | 126 | Firebird::system_call_failed::raise("pthread_create", state); |
126 | 127 | |
127 | 128 | if (!p_handle) |
128 | 129 | { |
129 | if (state = pthread_detach(thread)) | |
130 | if ((state = pthread_detach(*p_thread))) | |
130 | 131 | Firebird::system_call_failed::raise("pthread_detach", state); |
131 | 132 | } |
132 | 133 | #else |
166 | 167 | if (state) |
167 | 168 | Firebird::system_call_failed::raise("pthread_attr_setdetachstate", state); |
168 | 169 | } |
169 | state = pthread_create(&thread, &pattr, THREAD_ENTRYPOINT, THREAD_ARG); | |
170 | state = pthread_create(p_thread, &pattr, THREAD_ENTRYPOINT, THREAD_ARG); | |
170 | 171 | int state2 = pthread_attr_destroy(&pattr); |
171 | 172 | if (state) |
172 | 173 | Firebird::system_call_failed::raise("pthread_create", state); |
183 | 184 | if (state) |
184 | 185 | Firebird::system_call_failed::raise("pthread_setcanceltype", state); |
185 | 186 | #endif |
186 | *p_handle = thread; | |
187 | } | |
188 | ||
189 | return Thread(thread); | |
187 | } | |
188 | ||
189 | return Thread(*p_thread); | |
190 | 190 | } |
191 | 191 | |
192 | 192 | void Thread::waitForCompletion(Handle& thread) |
209 | 209 | ThreadId Thread::getId() |
210 | 210 | { |
211 | 211 | #ifdef USE_LWP_AS_THREAD_ID |
212 | return syscall(SYS_gettid); | |
212 | static __thread int tid = 0; | |
213 | if (!tid) | |
214 | tid = syscall(SYS_gettid); | |
215 | return tid; | |
213 | 216 | #else |
214 | 217 | return pthread_self(); |
215 | 218 | #endif |
321 | 324 | |
322 | 325 | SetThreadPriority(handle, priority); |
323 | 326 | |
324 | ResumeThread(handle); | |
325 | ||
326 | 327 | if (p_handle) |
327 | 328 | { |
328 | 329 | *p_handle = handle; |
330 | ResumeThread(handle); | |
329 | 331 | } |
330 | 332 | else |
331 | 333 | { |
334 | ResumeThread(handle); | |
332 | 335 | CloseHandle(handle); |
333 | 336 | } |
334 | 337 |
665 | 665 | if (isEof()) |
666 | 666 | return; // no need to raise useless exceptions |
667 | 667 | FB_SIZE_T cs = getClumpletSize(true, true, true); |
668 | ||
669 | switch (kind) | |
670 | { | |
671 | case InfoResponse: | |
672 | switch (getClumpTag()) | |
673 | { | |
674 | case isc_info_end: | |
675 | case isc_info_truncated: | |
676 | // terminating clumplet | |
677 | cur_offset = getBufferLength(); | |
678 | return; | |
679 | } | |
680 | } | |
681 | ||
668 | 682 | adjustSpbState(); |
669 | 683 | cur_offset += cs; |
670 | 684 | } |
100 | 100 | } |
101 | 101 | }; |
102 | 102 | |
103 | template <typename Mtx, typename RefCounted = DefaultRefCounted<Mtx> > | |
103 | template <typename Mtx, template <typename T> class RefCounted = DefaultRefCounted > | |
104 | 104 | class EnsureUnlock |
105 | 105 | { |
106 | 106 | public: |
113 | 113 | #define FB_LOCKED_FROM NULL |
114 | 114 | #endif |
115 | 115 | { |
116 | RefCounted::addRef(m_mutex); | |
116 | RefCounted<Mtx>::addRef(m_mutex); | |
117 | 117 | } |
118 | 118 | |
119 | 119 | ~EnsureUnlock() |
120 | 120 | { |
121 | 121 | while (m_locked) |
122 | 122 | leave(); |
123 | RefCounted::release(m_mutex); | |
123 | RefCounted<Mtx>::release(m_mutex); | |
124 | 124 | } |
125 | 125 | |
126 | 126 | void enter() |
154 | 154 | }; |
155 | 155 | #undef FB_LOCKED_FROM |
156 | 156 | |
157 | typedef EnsureUnlock<Mutex, NotRefCounted<Mutex> > MutexEnsureUnlock; | |
157 | typedef EnsureUnlock<Mutex, NotRefCounted> MutexEnsureUnlock; | |
158 | 158 | typedef EnsureUnlock<RefMutex> RefMutexEnsureUnlock; |
159 | 159 | |
160 | 160 | } // namespace |
88 | 88 | }; |
89 | 89 | |
90 | 90 | typedef RaiiLockGuard<XThreadMutex> XThreadLockGuard; |
91 | typedef EnsureUnlock<XThreadMutex, NotRefCounted<XThreadMutex> > XThreadEnsureUnlock; | |
91 | typedef EnsureUnlock<XThreadMutex, NotRefCounted> XThreadEnsureUnlock; | |
92 | 92 | |
93 | 93 | } |
94 | 94 |
256 | 256 | |
257 | 257 | |
258 | 258 | template <typename T, typename T2> |
259 | class AutoSetRestore2 | |
260 | { | |
261 | private: | |
259 | class AutoRestore2 | |
260 | { | |
261 | protected: | |
262 | 262 | typedef T (T2::*Getter)(); |
263 | 263 | typedef void (T2::*Setter)(T); |
264 | 264 | |
265 | 265 | public: |
266 | AutoSetRestore2(T2* aPointer, Getter aGetter, Setter aSetter, T newValue) | |
266 | AutoRestore2(T2* aPointer, Getter aGetter, Setter aSetter) | |
267 | 267 | : pointer(aPointer), |
268 | 268 | setter(aSetter), |
269 | 269 | oldValue((aPointer->*aGetter)()) |
270 | { | |
271 | (aPointer->*aSetter)(newValue); | |
272 | } | |
273 | ||
274 | ~AutoSetRestore2() | |
270 | { } | |
271 | ||
272 | void set(T newValue) | |
273 | { | |
274 | (pointer->*setter)(newValue); | |
275 | } | |
276 | ||
277 | ~AutoRestore2() | |
275 | 278 | { |
276 | 279 | (pointer->*setter)(oldValue); |
277 | 280 | } |
278 | 281 | |
279 | 282 | private: |
280 | 283 | // copying is prohibited |
281 | AutoSetRestore2(const AutoSetRestore2&); | |
282 | AutoSetRestore2& operator =(const AutoSetRestore2&); | |
284 | AutoRestore2(const AutoRestore2&); | |
285 | AutoRestore2& operator =(const AutoRestore2&); | |
283 | 286 | |
284 | 287 | private: |
285 | 288 | T2* pointer; |
288 | 291 | }; |
289 | 292 | |
290 | 293 | |
294 | template <typename T, typename T2> | |
295 | class AutoSetRestore2 : public AutoRestore2<T, T2> | |
296 | { | |
297 | typedef typename AutoRestore2<T, T2>::Getter Getter; | |
298 | typedef typename AutoRestore2<T, T2>::Setter Setter; | |
299 | public: | |
300 | AutoSetRestore2(T2* aPointer, Getter aGetter, Setter aSetter, T newValue) | |
301 | : AutoRestore2<T, T2>(aPointer, aGetter, aSetter) | |
302 | { | |
303 | this->set(newValue); | |
304 | } | |
305 | }; | |
306 | ||
307 | ||
291 | 308 | // One more typical class for AutoPtr cleanup |
292 | 309 | class FileClose |
293 | 310 | { |
335 | 335 | #endif //WIN_NT |
336 | 336 | |
337 | 337 | |
338 | // RAII holder | |
338 | // RAII holders | |
339 | 339 | template <typename M> |
340 | 340 | class RaiiLockGuard |
341 | 341 | { |
368 | 368 | |
369 | 369 | typedef RaiiLockGuard<Mutex> MutexLockGuard; |
370 | 370 | |
371 | class MutexUnlockGuard | |
372 | { | |
373 | public: | |
374 | explicit MutexUnlockGuard(Mutex& aLock, const char* aReason) | |
371 | ||
372 | template <typename M> | |
373 | class RaiiUnlockGuard | |
374 | { | |
375 | public: | |
376 | explicit RaiiUnlockGuard(M& aLock, const char* aReason) | |
375 | 377 | : lock(&aLock) |
376 | 378 | #ifdef DEV_BUILD |
377 | 379 | , saveReason(aReason) |
380 | 382 | lock->leave(); |
381 | 383 | } |
382 | 384 | |
383 | ~MutexUnlockGuard() | |
385 | ~RaiiUnlockGuard() | |
384 | 386 | { |
385 | 387 | try |
386 | 388 | { |
398 | 400 | |
399 | 401 | private: |
400 | 402 | // Forbid copying |
401 | MutexUnlockGuard(const MutexUnlockGuard&); | |
402 | MutexUnlockGuard& operator=(const MutexUnlockGuard&); | |
403 | ||
404 | Mutex* lock; | |
403 | RaiiUnlockGuard(const RaiiUnlockGuard&); | |
404 | RaiiUnlockGuard& operator=(const RaiiUnlockGuard&); | |
405 | ||
406 | M* lock; | |
405 | 407 | #ifdef DEV_BUILD |
406 | 408 | const char* saveReason; |
407 | 409 | #endif |
408 | 410 | }; |
411 | ||
412 | typedef RaiiUnlockGuard<Mutex> MutexUnlockGuard; | |
409 | 413 | |
410 | 414 | |
411 | 415 | class MutexCheckoutGuard |
135 | 135 | {TYPE_INTEGER, "CpuAffinityMask", (ConfigValue) 0}, |
136 | 136 | {TYPE_INTEGER, "TcpRemoteBufferSize", (ConfigValue) 8192}, // bytes |
137 | 137 | {TYPE_BOOLEAN, "TcpNoNagle", (ConfigValue) true}, |
138 | {TYPE_BOOLEAN, "TcpLoopbackFastPath", (ConfigValue) true}, | |
138 | {TYPE_BOOLEAN, "TcpLoopbackFastPath", (ConfigValue) false}, | |
139 | 139 | {TYPE_INTEGER, "DefaultDbCachePages", (ConfigValue) -1}, // pages |
140 | 140 | {TYPE_INTEGER, "ConnectionTimeout", (ConfigValue) 180}, // seconds |
141 | 141 | {TYPE_INTEGER, "DummyPacketInterval", (ConfigValue) 0}, // seconds |
1632 | 1632 | !SetEndOfFile(file_handle) || !FlushFileBuffers(file_handle)) |
1633 | 1633 | { |
1634 | 1634 | err = GetLastError(); |
1635 | CloseHandle(event_handle); | |
1636 | 1635 | CloseHandle(file_handle); |
1637 | 1636 | |
1638 | 1637 | if (err == ERROR_USER_MAPPED_FILE) |
1640 | 1639 | if (retry_count < 50) // 0.5 sec |
1641 | 1640 | goto retry; |
1642 | 1641 | |
1642 | CloseHandle(event_handle); | |
1643 | 1643 | Arg::Gds(isc_instance_conflict).raise(); |
1644 | 1644 | } |
1645 | 1645 | else |
1646 | { | |
1647 | CloseHandle(event_handle); | |
1646 | 1648 | system_call_failed::raise("SetFilePointer", err); |
1649 | } | |
1647 | 1650 | } |
1648 | 1651 | } |
1649 | 1652 |
44 | 44 | { |
45 | 45 | // do not use /dev/random because it may return lesser data than we need. |
46 | 46 | int fd = os_utils::open("/dev/urandom", O_RDONLY); |
47 | if (fd < 0) | |
48 | Firebird::system_call_failed::raise("open"); | |
49 | ||
47 | 50 | for (FB_SIZE_T offset = 0; offset < size; ) |
48 | 51 | { |
49 | 52 | int rc = read(fd, static_cast<char*>(buffer) + offset, size - offset); |
1403 | 1403 | continue; |
1404 | 1404 | |
1405 | 1405 | fb_assert(accessor.current()->first.hasData()); |
1406 | USHORT ch = accessor.current()->first[0]; | |
1407 | ||
1408 | if (ch >= 0xFDD0 && ch <= 0xFDEF) | |
1406 | USHORT firstCh = accessor.current()->first.front(); | |
1407 | USHORT lastCh = accessor.current()->first.back(); | |
1408 | ||
1409 | if ((firstCh >= 0xFDD0 && firstCh <= 0xFDEF) || UTF_IS_SURROGATE(lastCh)) | |
1409 | 1410 | { |
1410 | 1411 | keySet.clear(); |
1411 | 1412 | keySet.add(Array<UCHAR>()); |
1589 | 1590 | srcLenLong = p - src + 1; |
1590 | 1591 | } |
1591 | 1592 | |
1593 | UCHAR* originalDst = dst; | |
1594 | USHORT originalDstLen = dstLen; | |
1595 | ||
1592 | 1596 | if (!trailingNumbersRemoved) |
1593 | 1597 | { |
1594 | 1598 | for (int i = MIN(maxContractionsPrefixLength, srcLenLong); i > 0; --i) |
1597 | 1601 | |
1598 | 1602 | if (keys) |
1599 | 1603 | { |
1600 | const UCHAR* dstStart = dst; | |
1601 | ULONG prefixLen; | |
1604 | UCHAR lastCharKey[BUFFER_TINY]; // sort key for a single character | |
1605 | ULONG prefixLen, lastCharKeyLen; | |
1602 | 1606 | |
1603 | 1607 | srcLenLong -= i; |
1604 | 1608 | |
1607 | 1611 | prefixLen = icu->ucolGetSortKey(coll, |
1608 | 1612 | reinterpret_cast<const UChar*>(src), srcLenLong, dst + 2, dstLen - 2); |
1609 | 1613 | |
1610 | if (prefixLen == 0 || prefixLen > dstLen - 2 || prefixLen > MAX_USHORT) | |
1614 | lastCharKeyLen = icu->ucolGetSortKey(coll, | |
1615 | reinterpret_cast<const UChar*>(src + srcLenLong), i, lastCharKey, sizeof(lastCharKey)); | |
1616 | ||
1617 | if (prefixLen == 0 || prefixLen > dstLen - 2 || prefixLen > MAX_USHORT || | |
1618 | lastCharKeyLen == 0) | |
1619 | { | |
1611 | 1620 | return INTL_BAD_KEY_LENGTH; |
1621 | } | |
1612 | 1622 | |
1613 | 1623 | fb_assert(dst[2 + prefixLen - 1] == '\0'); |
1614 | 1624 | --prefixLen; |
1615 | dstLen -= 2 + prefixLen; | |
1625 | ||
1626 | fb_assert(lastCharKey[lastCharKeyLen - 1] == '\0'); | |
1627 | --lastCharKeyLen; | |
1616 | 1628 | } |
1617 | 1629 | else |
1618 | 1630 | prefixLen = 0; |
1631 | ||
1632 | bool fallbackToPrefixKey = false; | |
1619 | 1633 | |
1620 | 1634 | for (SortKeyArray::const_iterator keyIt = keys->begin(); |
1621 | 1635 | keyIt != keys->end(); |
1622 | 1636 | ++keyIt) |
1623 | 1637 | { |
1624 | const ULONG keyLen = prefixLen + keyIt->getCount(); | |
1638 | const UCHAR advance = prefixLen && lastCharKeyLen > 1 && | |
1639 | keyIt->hasData() && lastCharKey[0] == keyIt->front() ? 1 : 0; | |
1640 | ||
1641 | if (keyIt->getCount() - advance == 0) | |
1642 | { | |
1643 | fallbackToPrefixKey = true; | |
1644 | break; | |
1645 | } | |
1646 | ||
1647 | const ULONG keyLen = prefixLen + keyIt->getCount() - advance; | |
1625 | 1648 | |
1626 | 1649 | if (keyLen > dstLen - 2 || keyLen > MAX_USHORT) |
1627 | 1650 | return INTL_BAD_KEY_LENGTH; |
1629 | 1652 | dst[0] = UCHAR(keyLen & 0xFF); |
1630 | 1653 | dst[1] = UCHAR(keyLen >> 8); |
1631 | 1654 | |
1632 | if (dst != dstStart) | |
1633 | memcpy(dst + 2, dstStart + 2, prefixLen); | |
1634 | ||
1635 | memcpy(dst + 2 + prefixLen, keyIt->begin(), keyIt->getCount()); | |
1655 | if (dst != originalDst) | |
1656 | memcpy(dst + 2, originalDst + 2, prefixLen); | |
1657 | ||
1658 | memcpy(dst + 2 + prefixLen, keyIt->begin() + advance, keyIt->getCount() - advance); | |
1636 | 1659 | dst += 2 + keyLen; |
1637 | 1660 | dstLen -= 2 + keyLen; |
1638 | 1661 | } |
1639 | 1662 | |
1640 | return dst - dstStart; | |
1663 | if (fallbackToPrefixKey) | |
1664 | break; | |
1665 | ||
1666 | return dst - originalDst; | |
1641 | 1667 | } |
1642 | 1668 | } |
1643 | 1669 | } |
1644 | 1670 | |
1645 | 1671 | ULONG keyLen = icu->ucolGetSortKey(coll, |
1646 | reinterpret_cast<const UChar*>(src), srcLenLong, dst + 2, dstLen - 3); | |
1647 | ||
1648 | if (keyLen == 0 || keyLen > dstLen - 3 || keyLen > MAX_USHORT) | |
1672 | reinterpret_cast<const UChar*>(src), srcLenLong, originalDst + 2, originalDstLen - 3); | |
1673 | ||
1674 | if (keyLen == 0 || keyLen > originalDstLen - 3 || keyLen > MAX_USHORT) | |
1649 | 1675 | return INTL_BAD_KEY_LENGTH; |
1650 | 1676 | |
1651 | fb_assert(dst[2 + keyLen - 1] == '\0'); | |
1677 | fb_assert(originalDst[2 + keyLen - 1] == '\0'); | |
1652 | 1678 | --keyLen; |
1653 | 1679 | |
1654 | dst[0] = UCHAR(keyLen & 0xFF); | |
1655 | dst[1] = UCHAR(keyLen >> 8); | |
1680 | originalDst[0] = UCHAR(keyLen & 0xFF); | |
1681 | originalDst[1] = UCHAR(keyLen >> 8); | |
1656 | 1682 | |
1657 | 1683 | return keyLen + 2; |
1658 | 1684 | } |
687 | 687 | {335544981, "Floating point overflow in built-in function @1"}, /* sysf_fp_overflow */ |
688 | 688 | {335544982, "Floating point overflow in result from UDF @1"}, /* udf_fp_overflow */ |
689 | 689 | {335544983, "Invalid floating point value returned by UDF @1"}, /* udf_fp_nan */ |
690 | {335544984, "Database is probably already opened by another engine instance in another Windows session"}, /* instance_conflict */ | |
690 | {335544984, "Shared memory area is probably already created by another engine instance in another Windows session"}, /* instance_conflict */ | |
691 | 691 | {335544985, "No free space found in temporary directories"}, /* out_of_temp_space */ |
692 | 692 | {335544986, "Explicit transaction control is not allowed"}, /* eds_expl_tran_ctrl */ |
693 | 693 | {335544987, "Use of TRUSTED switches in spb_command_line is prohibited"}, /* no_trusted_spb */ |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp437 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp437 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp437 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
145 | 0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
146 | 0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
147 | 0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
148 | 0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
149 | 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
150 | 0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
151 | 0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
152 | 0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
153 | 0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
154 | 0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
155 | 0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
156 | 0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
157 | 0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE | |
158 | 0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
159 | 0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
160 | 0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
161 | 0x91 0x00e6 #LATIN SMALL LETTER AE | |
162 | 0x92 0x00c6 #LATIN CAPITAL LETTER AE | |
163 | 0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
164 | 0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
165 | 0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE | |
166 | 0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
167 | 0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
168 | 0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS | |
169 | 0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
170 | 0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
171 | 0x9b 0x00a2 #CENT SIGN | |
172 | 0x9c 0x00a3 #POUND SIGN | |
173 | 0x9d 0x00a5 #YEN SIGN | |
174 | 0x9e 0x20a7 #PESETA SIGN | |
175 | 0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
176 | 0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
177 | 0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
178 | 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
179 | 0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
180 | 0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
181 | 0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
182 | 0xa6 0x00aa #FEMININE ORDINAL INDICATOR | |
183 | 0xa7 0x00ba #MASCULINE ORDINAL INDICATOR | |
184 | 0xa8 0x00bf #INVERTED QUESTION MARK | |
185 | 0xa9 0x2310 #REVERSED NOT SIGN | |
186 | 0xaa 0x00ac #NOT SIGN | |
187 | 0xab 0x00bd #VULGAR FRACTION ONE HALF | |
188 | 0xac 0x00bc #VULGAR FRACTION ONE QUARTER | |
189 | 0xad 0x00a1 #INVERTED EXCLAMATION MARK | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE | |
198 | 0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE | |
199 | 0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE | |
200 | 0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE | |
206 | 0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE | |
215 | 0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE | |
224 | 0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE | |
225 | 0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE | |
226 | 0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE | |
227 | 0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE | |
228 | 0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE | |
229 | 0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE | |
230 | 0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE | |
231 | 0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE | |
232 | 0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x258c #LEFT HALF BLOCK | |
238 | 0xde 0x2590 #RIGHT HALF BLOCK | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x03b1 #GREEK SMALL LETTER ALPHA | |
241 | 0xe1 0x00df #LATIN SMALL LETTER SHARP S | |
242 | 0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA | |
243 | 0xe3 0x03c0 #GREEK SMALL LETTER PI | |
244 | 0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA | |
245 | 0xe5 0x03c3 #GREEK SMALL LETTER SIGMA | |
246 | 0xe6 0x00b5 #MICRO SIGN | |
247 | 0xe7 0x03c4 #GREEK SMALL LETTER TAU | |
248 | 0xe8 0x03a6 #GREEK CAPITAL LETTER PHI | |
249 | 0xe9 0x0398 #GREEK CAPITAL LETTER THETA | |
250 | 0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA | |
251 | 0xeb 0x03b4 #GREEK SMALL LETTER DELTA | |
252 | 0xec 0x221e #INFINITY | |
253 | 0xed 0x03c6 #GREEK SMALL LETTER PHI | |
254 | 0xee 0x03b5 #GREEK SMALL LETTER EPSILON | |
255 | 0xef 0x2229 #INTERSECTION | |
256 | 0xf0 0x2261 #IDENTICAL TO | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 0x2265 #GREATER-THAN OR EQUAL TO | |
259 | 0xf3 0x2264 #LESS-THAN OR EQUAL TO | |
260 | 0xf4 0x2320 #TOP HALF INTEGRAL | |
261 | 0xf5 0x2321 #BOTTOM HALF INTEGRAL | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x2248 #ALMOST EQUAL TO | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x2219 #BULLET OPERATOR | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x221a #SQUARE ROOT | |
268 | 0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N | |
269 | 0xfd 0x00b2 #SUPERSCRIPT TWO | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp737 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp737 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp737 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0391 #GREEK CAPITAL LETTER ALPHA | |
145 | 0x81 0x0392 #GREEK CAPITAL LETTER BETA | |
146 | 0x82 0x0393 #GREEK CAPITAL LETTER GAMMA | |
147 | 0x83 0x0394 #GREEK CAPITAL LETTER DELTA | |
148 | 0x84 0x0395 #GREEK CAPITAL LETTER EPSILON | |
149 | 0x85 0x0396 #GREEK CAPITAL LETTER ZETA | |
150 | 0x86 0x0397 #GREEK CAPITAL LETTER ETA | |
151 | 0x87 0x0398 #GREEK CAPITAL LETTER THETA | |
152 | 0x88 0x0399 #GREEK CAPITAL LETTER IOTA | |
153 | 0x89 0x039a #GREEK CAPITAL LETTER KAPPA | |
154 | 0x8a 0x039b #GREEK CAPITAL LETTER LAMDA | |
155 | 0x8b 0x039c #GREEK CAPITAL LETTER MU | |
156 | 0x8c 0x039d #GREEK CAPITAL LETTER NU | |
157 | 0x8d 0x039e #GREEK CAPITAL LETTER XI | |
158 | 0x8e 0x039f #GREEK CAPITAL LETTER OMICRON | |
159 | 0x8f 0x03a0 #GREEK CAPITAL LETTER PI | |
160 | 0x90 0x03a1 #GREEK CAPITAL LETTER RHO | |
161 | 0x91 0x03a3 #GREEK CAPITAL LETTER SIGMA | |
162 | 0x92 0x03a4 #GREEK CAPITAL LETTER TAU | |
163 | 0x93 0x03a5 #GREEK CAPITAL LETTER UPSILON | |
164 | 0x94 0x03a6 #GREEK CAPITAL LETTER PHI | |
165 | 0x95 0x03a7 #GREEK CAPITAL LETTER CHI | |
166 | 0x96 0x03a8 #GREEK CAPITAL LETTER PSI | |
167 | 0x97 0x03a9 #GREEK CAPITAL LETTER OMEGA | |
168 | 0x98 0x03b1 #GREEK SMALL LETTER ALPHA | |
169 | 0x99 0x03b2 #GREEK SMALL LETTER BETA | |
170 | 0x9a 0x03b3 #GREEK SMALL LETTER GAMMA | |
171 | 0x9b 0x03b4 #GREEK SMALL LETTER DELTA | |
172 | 0x9c 0x03b5 #GREEK SMALL LETTER EPSILON | |
173 | 0x9d 0x03b6 #GREEK SMALL LETTER ZETA | |
174 | 0x9e 0x03b7 #GREEK SMALL LETTER ETA | |
175 | 0x9f 0x03b8 #GREEK SMALL LETTER THETA | |
176 | 0xa0 0x03b9 #GREEK SMALL LETTER IOTA | |
177 | 0xa1 0x03ba #GREEK SMALL LETTER KAPPA | |
178 | 0xa2 0x03bb #GREEK SMALL LETTER LAMDA | |
179 | 0xa3 0x03bc #GREEK SMALL LETTER MU | |
180 | 0xa4 0x03bd #GREEK SMALL LETTER NU | |
181 | 0xa5 0x03be #GREEK SMALL LETTER XI | |
182 | 0xa6 0x03bf #GREEK SMALL LETTER OMICRON | |
183 | 0xa7 0x03c0 #GREEK SMALL LETTER PI | |
184 | 0xa8 0x03c1 #GREEK SMALL LETTER RHO | |
185 | 0xa9 0x03c3 #GREEK SMALL LETTER SIGMA | |
186 | 0xaa 0x03c2 #GREEK SMALL LETTER FINAL SIGMA | |
187 | 0xab 0x03c4 #GREEK SMALL LETTER TAU | |
188 | 0xac 0x03c5 #GREEK SMALL LETTER UPSILON | |
189 | 0xad 0x03c6 #GREEK SMALL LETTER PHI | |
190 | 0xae 0x03c7 #GREEK SMALL LETTER CHI | |
191 | 0xaf 0x03c8 #GREEK SMALL LETTER PSI | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE | |
198 | 0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE | |
199 | 0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE | |
200 | 0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE | |
206 | 0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE | |
215 | 0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE | |
224 | 0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE | |
225 | 0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE | |
226 | 0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE | |
227 | 0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE | |
228 | 0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE | |
229 | 0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE | |
230 | 0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE | |
231 | 0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE | |
232 | 0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x258c #LEFT HALF BLOCK | |
238 | 0xde 0x2590 #RIGHT HALF BLOCK | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x03c9 #GREEK SMALL LETTER OMEGA | |
241 | 0xe1 0x03ac #GREEK SMALL LETTER ALPHA WITH TONOS | |
242 | 0xe2 0x03ad #GREEK SMALL LETTER EPSILON WITH TONOS | |
243 | 0xe3 0x03ae #GREEK SMALL LETTER ETA WITH TONOS | |
244 | 0xe4 0x03ca #GREEK SMALL LETTER IOTA WITH DIALYTIKA | |
245 | 0xe5 0x03af #GREEK SMALL LETTER IOTA WITH TONOS | |
246 | 0xe6 0x03cc #GREEK SMALL LETTER OMICRON WITH TONOS | |
247 | 0xe7 0x03cd #GREEK SMALL LETTER UPSILON WITH TONOS | |
248 | 0xe8 0x03cb #GREEK SMALL LETTER UPSILON WITH DIALYTIKA | |
249 | 0xe9 0x03ce #GREEK SMALL LETTER OMEGA WITH TONOS | |
250 | 0xea 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS | |
251 | 0xeb 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS | |
252 | 0xec 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS | |
253 | 0xed 0x038a #GREEK CAPITAL LETTER IOTA WITH TONOS | |
254 | 0xee 0x038c #GREEK CAPITAL LETTER OMICRON WITH TONOS | |
255 | 0xef 0x038e #GREEK CAPITAL LETTER UPSILON WITH TONOS | |
256 | 0xf0 0x038f #GREEK CAPITAL LETTER OMEGA WITH TONOS | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 0x2265 #GREATER-THAN OR EQUAL TO | |
259 | 0xf3 0x2264 #LESS-THAN OR EQUAL TO | |
260 | 0xf4 0x03aa #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA | |
261 | 0xf5 0x03ab #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x2248 #ALMOST EQUAL TO | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x2219 #BULLET OPERATOR | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x221a #SQUARE ROOT | |
268 | 0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N | |
269 | 0xfd 0x00b2 #SUPERSCRIPT TWO | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp775 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp775 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp775 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE | |
145 | 0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
146 | 0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
147 | 0x83 0x0101 #LATIN SMALL LETTER A WITH MACRON | |
148 | 0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
149 | 0x85 0x0123 #LATIN SMALL LETTER G WITH CEDILLA | |
150 | 0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
151 | 0x87 0x0107 #LATIN SMALL LETTER C WITH ACUTE | |
152 | 0x88 0x0142 #LATIN SMALL LETTER L WITH STROKE | |
153 | 0x89 0x0113 #LATIN SMALL LETTER E WITH MACRON | |
154 | 0x8a 0x0156 #LATIN CAPITAL LETTER R WITH CEDILLA | |
155 | 0x8b 0x0157 #LATIN SMALL LETTER R WITH CEDILLA | |
156 | 0x8c 0x012b #LATIN SMALL LETTER I WITH MACRON | |
157 | 0x8d 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE | |
158 | 0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
159 | 0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
160 | 0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
161 | 0x91 0x00e6 #LATIN SMALL LETTER AE | |
162 | 0x92 0x00c6 #LATIN CAPITAL LETTER AE | |
163 | 0x93 0x014d #LATIN SMALL LETTER O WITH MACRON | |
164 | 0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
165 | 0x95 0x0122 #LATIN CAPITAL LETTER G WITH CEDILLA | |
166 | 0x96 0x00a2 #CENT SIGN | |
167 | 0x97 0x015a #LATIN CAPITAL LETTER S WITH ACUTE | |
168 | 0x98 0x015b #LATIN SMALL LETTER S WITH ACUTE | |
169 | 0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
170 | 0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
171 | 0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
172 | 0x9c 0x00a3 #POUND SIGN | |
173 | 0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
174 | 0x9e 0x00d7 #MULTIPLICATION SIGN | |
175 | 0x9f 0x00a4 #CURRENCY SIGN | |
176 | 0xa0 0x0100 #LATIN CAPITAL LETTER A WITH MACRON | |
177 | 0xa1 0x012a #LATIN CAPITAL LETTER I WITH MACRON | |
178 | 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
179 | 0xa3 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE | |
180 | 0xa4 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE | |
181 | 0xa5 0x017a #LATIN SMALL LETTER Z WITH ACUTE | |
182 | 0xa6 0x201d #RIGHT DOUBLE QUOTATION MARK | |
183 | 0xa7 0x00a6 #BROKEN BAR | |
184 | 0xa8 0x00a9 #COPYRIGHT SIGN | |
185 | 0xa9 0x00ae #REGISTERED SIGN | |
186 | 0xaa 0x00ac #NOT SIGN | |
187 | 0xab 0x00bd #VULGAR FRACTION ONE HALF | |
188 | 0xac 0x00bc #VULGAR FRACTION ONE QUARTER | |
189 | 0xad 0x0141 #LATIN CAPITAL LETTER L WITH STROKE | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK | |
198 | 0xb6 0x010c #LATIN CAPITAL LETTER C WITH CARON | |
199 | 0xb7 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK | |
200 | 0xb8 0x0116 #LATIN CAPITAL LETTER E WITH DOT ABOVE | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x012e #LATIN CAPITAL LETTER I WITH OGONEK | |
206 | 0xbe 0x0160 #LATIN CAPITAL LETTER S WITH CARON | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x0172 #LATIN CAPITAL LETTER U WITH OGONEK | |
215 | 0xc7 0x016a #LATIN CAPITAL LETTER U WITH MACRON | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x017d #LATIN CAPITAL LETTER Z WITH CARON | |
224 | 0xd0 0x0105 #LATIN SMALL LETTER A WITH OGONEK | |
225 | 0xd1 0x010d #LATIN SMALL LETTER C WITH CARON | |
226 | 0xd2 0x0119 #LATIN SMALL LETTER E WITH OGONEK | |
227 | 0xd3 0x0117 #LATIN SMALL LETTER E WITH DOT ABOVE | |
228 | 0xd4 0x012f #LATIN SMALL LETTER I WITH OGONEK | |
229 | 0xd5 0x0161 #LATIN SMALL LETTER S WITH CARON | |
230 | 0xd6 0x0173 #LATIN SMALL LETTER U WITH OGONEK | |
231 | 0xd7 0x016b #LATIN SMALL LETTER U WITH MACRON | |
232 | 0xd8 0x017e #LATIN SMALL LETTER Z WITH CARON | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x258c #LEFT HALF BLOCK | |
238 | 0xde 0x2590 #RIGHT HALF BLOCK | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
241 | 0xe1 0x00df #LATIN SMALL LETTER SHARP S | |
242 | 0xe2 0x014c #LATIN CAPITAL LETTER O WITH MACRON | |
243 | 0xe3 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE | |
244 | 0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
245 | 0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
246 | 0xe6 0x00b5 #MICRO SIGN | |
247 | 0xe7 0x0144 #LATIN SMALL LETTER N WITH ACUTE | |
248 | 0xe8 0x0136 #LATIN CAPITAL LETTER K WITH CEDILLA | |
249 | 0xe9 0x0137 #LATIN SMALL LETTER K WITH CEDILLA | |
250 | 0xea 0x013b #LATIN CAPITAL LETTER L WITH CEDILLA | |
251 | 0xeb 0x013c #LATIN SMALL LETTER L WITH CEDILLA | |
252 | 0xec 0x0146 #LATIN SMALL LETTER N WITH CEDILLA | |
253 | 0xed 0x0112 #LATIN CAPITAL LETTER E WITH MACRON | |
254 | 0xee 0x0145 #LATIN CAPITAL LETTER N WITH CEDILLA | |
255 | 0xef 0x2019 #RIGHT SINGLE QUOTATION MARK | |
256 | 0xf0 0x00ad #SOFT HYPHEN | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 0x201c #LEFT DOUBLE QUOTATION MARK | |
259 | 0xf3 0x00be #VULGAR FRACTION THREE QUARTERS | |
260 | 0xf4 0x00b6 #PILCROW SIGN | |
261 | 0xf5 0x00a7 #SECTION SIGN | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x201e #DOUBLE LOW-9 QUOTATION MARK | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x2219 #BULLET OPERATOR | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x00b9 #SUPERSCRIPT ONE | |
268 | 0xfc 0x00b3 #SUPERSCRIPT THREE | |
269 | 0xfd 0x00b2 #SUPERSCRIPT TWO | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp850 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp850 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp850 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
145 | 0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
146 | 0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
147 | 0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
148 | 0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
149 | 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
150 | 0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
151 | 0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
152 | 0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
153 | 0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
154 | 0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
155 | 0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
156 | 0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
157 | 0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE | |
158 | 0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
159 | 0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
160 | 0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
161 | 0x91 0x00e6 #LATIN SMALL LETTER AE | |
162 | 0x92 0x00c6 #LATIN CAPITAL LETTER AE | |
163 | 0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
164 | 0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
165 | 0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE | |
166 | 0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
167 | 0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
168 | 0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS | |
169 | 0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
170 | 0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
171 | 0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
172 | 0x9c 0x00a3 #POUND SIGN | |
173 | 0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
174 | 0x9e 0x00d7 #MULTIPLICATION SIGN | |
175 | 0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
176 | 0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
177 | 0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
178 | 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
179 | 0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
180 | 0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
181 | 0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
182 | 0xa6 0x00aa #FEMININE ORDINAL INDICATOR | |
183 | 0xa7 0x00ba #MASCULINE ORDINAL INDICATOR | |
184 | 0xa8 0x00bf #INVERTED QUESTION MARK | |
185 | 0xa9 0x00ae #REGISTERED SIGN | |
186 | 0xaa 0x00ac #NOT SIGN | |
187 | 0xab 0x00bd #VULGAR FRACTION ONE HALF | |
188 | 0xac 0x00bc #VULGAR FRACTION ONE QUARTER | |
189 | 0xad 0x00a1 #INVERTED EXCLAMATION MARK | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
198 | 0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
199 | 0xb7 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE | |
200 | 0xb8 0x00a9 #COPYRIGHT SIGN | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x00a2 #CENT SIGN | |
206 | 0xbe 0x00a5 #YEN SIGN | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x00e3 #LATIN SMALL LETTER A WITH TILDE | |
215 | 0xc7 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x00a4 #CURRENCY SIGN | |
224 | 0xd0 0x00f0 #LATIN SMALL LETTER ETH | |
225 | 0xd1 0x00d0 #LATIN CAPITAL LETTER ETH | |
226 | 0xd2 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
227 | 0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
228 | 0xd4 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE | |
229 | 0xd5 0x0131 #LATIN SMALL LETTER DOTLESS I | |
230 | 0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
231 | 0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
232 | 0xd8 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x00a6 #BROKEN BAR | |
238 | 0xde 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
241 | 0xe1 0x00df #LATIN SMALL LETTER SHARP S | |
242 | 0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
243 | 0xe3 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE | |
244 | 0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
245 | 0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
246 | 0xe6 0x00b5 #MICRO SIGN | |
247 | 0xe7 0x00fe #LATIN SMALL LETTER THORN | |
248 | 0xe8 0x00de #LATIN CAPITAL LETTER THORN | |
249 | 0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
250 | 0xea 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
251 | 0xeb 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE | |
252 | 0xec 0x00fd #LATIN SMALL LETTER Y WITH ACUTE | |
253 | 0xed 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE | |
254 | 0xee 0x00af #MACRON | |
255 | 0xef 0x00b4 #ACUTE ACCENT | |
256 | 0xf0 0x00ad #SOFT HYPHEN | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 0x2017 #DOUBLE LOW LINE | |
259 | 0xf3 0x00be #VULGAR FRACTION THREE QUARTERS | |
260 | 0xf4 0x00b6 #PILCROW SIGN | |
261 | 0xf5 0x00a7 #SECTION SIGN | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x00b8 #CEDILLA | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x00a8 #DIAERESIS | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x00b9 #SUPERSCRIPT ONE | |
268 | 0xfc 0x00b3 #SUPERSCRIPT THREE | |
269 | 0xfd 0x00b2 #SUPERSCRIPT TWO | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp852 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp852 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp852 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
145 | 0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
146 | 0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
147 | 0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
148 | 0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
149 | 0x85 0x016f #LATIN SMALL LETTER U WITH RING ABOVE | |
150 | 0x86 0x0107 #LATIN SMALL LETTER C WITH ACUTE | |
151 | 0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
152 | 0x88 0x0142 #LATIN SMALL LETTER L WITH STROKE | |
153 | 0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
154 | 0x8a 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE | |
155 | 0x8b 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE | |
156 | 0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
157 | 0x8d 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE | |
158 | 0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
159 | 0x8f 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE | |
160 | 0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
161 | 0x91 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE | |
162 | 0x92 0x013a #LATIN SMALL LETTER L WITH ACUTE | |
163 | 0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
164 | 0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
165 | 0x95 0x013d #LATIN CAPITAL LETTER L WITH CARON | |
166 | 0x96 0x013e #LATIN SMALL LETTER L WITH CARON | |
167 | 0x97 0x015a #LATIN CAPITAL LETTER S WITH ACUTE | |
168 | 0x98 0x015b #LATIN SMALL LETTER S WITH ACUTE | |
169 | 0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
170 | 0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
171 | 0x9b 0x0164 #LATIN CAPITAL LETTER T WITH CARON | |
172 | 0x9c 0x0165 #LATIN SMALL LETTER T WITH CARON | |
173 | 0x9d 0x0141 #LATIN CAPITAL LETTER L WITH STROKE | |
174 | 0x9e 0x00d7 #MULTIPLICATION SIGN | |
175 | 0x9f 0x010d #LATIN SMALL LETTER C WITH CARON | |
176 | 0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
177 | 0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
178 | 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
179 | 0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
180 | 0xa4 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK | |
181 | 0xa5 0x0105 #LATIN SMALL LETTER A WITH OGONEK | |
182 | 0xa6 0x017d #LATIN CAPITAL LETTER Z WITH CARON | |
183 | 0xa7 0x017e #LATIN SMALL LETTER Z WITH CARON | |
184 | 0xa8 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK | |
185 | 0xa9 0x0119 #LATIN SMALL LETTER E WITH OGONEK | |
186 | 0xaa 0x00ac #NOT SIGN | |
187 | 0xab 0x017a #LATIN SMALL LETTER Z WITH ACUTE | |
188 | 0xac 0x010c #LATIN CAPITAL LETTER C WITH CARON | |
189 | 0xad 0x015f #LATIN SMALL LETTER S WITH CEDILLA | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
198 | 0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
199 | 0xb7 0x011a #LATIN CAPITAL LETTER E WITH CARON | |
200 | 0xb8 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE | |
206 | 0xbe 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x0102 #LATIN CAPITAL LETTER A WITH BREVE | |
215 | 0xc7 0x0103 #LATIN SMALL LETTER A WITH BREVE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x00a4 #CURRENCY SIGN | |
224 | 0xd0 0x0111 #LATIN SMALL LETTER D WITH STROKE | |
225 | 0xd1 0x0110 #LATIN CAPITAL LETTER D WITH STROKE | |
226 | 0xd2 0x010e #LATIN CAPITAL LETTER D WITH CARON | |
227 | 0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
228 | 0xd4 0x010f #LATIN SMALL LETTER D WITH CARON | |
229 | 0xd5 0x0147 #LATIN CAPITAL LETTER N WITH CARON | |
230 | 0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
231 | 0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
232 | 0xd8 0x011b #LATIN SMALL LETTER E WITH CARON | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x0162 #LATIN CAPITAL LETTER T WITH CEDILLA | |
238 | 0xde 0x016e #LATIN CAPITAL LETTER U WITH RING ABOVE | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
241 | 0xe1 0x00df #LATIN SMALL LETTER SHARP S | |
242 | 0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
243 | 0xe3 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE | |
244 | 0xe4 0x0144 #LATIN SMALL LETTER N WITH ACUTE | |
245 | 0xe5 0x0148 #LATIN SMALL LETTER N WITH CARON | |
246 | 0xe6 0x0160 #LATIN CAPITAL LETTER S WITH CARON | |
247 | 0xe7 0x0161 #LATIN SMALL LETTER S WITH CARON | |
248 | 0xe8 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE | |
249 | 0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
250 | 0xea 0x0155 #LATIN SMALL LETTER R WITH ACUTE | |
251 | 0xeb 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE | |
252 | 0xec 0x00fd #LATIN SMALL LETTER Y WITH ACUTE | |
253 | 0xed 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE | |
254 | 0xee 0x0163 #LATIN SMALL LETTER T WITH CEDILLA | |
255 | 0xef 0x00b4 #ACUTE ACCENT | |
256 | 0xf0 0x00ad #SOFT HYPHEN | |
257 | 0xf1 0x02dd #DOUBLE ACUTE ACCENT | |
258 | 0xf2 0x02db #OGONEK | |
259 | 0xf3 0x02c7 #CARON | |
260 | 0xf4 0x02d8 #BREVE | |
261 | 0xf5 0x00a7 #SECTION SIGN | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x00b8 #CEDILLA | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x00a8 #DIAERESIS | |
266 | 0xfa 0x02d9 #DOT ABOVE | |
267 | 0xfb 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE | |
268 | 0xfc 0x0158 #LATIN CAPITAL LETTER R WITH CARON | |
269 | 0xfd 0x0159 #LATIN SMALL LETTER R WITH CARON | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp857 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp857 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp857 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
145 | 0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
146 | 0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
147 | 0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
148 | 0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
149 | 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
150 | 0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
151 | 0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
152 | 0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
153 | 0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
154 | 0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
155 | 0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
156 | 0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
157 | 0x8d 0x0131 #LATIN SMALL LETTER DOTLESS I | |
158 | 0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
159 | 0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
160 | 0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
161 | 0x91 0x00e6 #LATIN SMALL LETTER AE | |
162 | 0x92 0x00c6 #LATIN CAPITAL LETTER AE | |
163 | 0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
164 | 0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
165 | 0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE | |
166 | 0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
167 | 0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
168 | 0x98 0x0130 #LATIN CAPITAL LETTER I WITH DOT ABOVE | |
169 | 0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
170 | 0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
171 | 0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
172 | 0x9c 0x00a3 #POUND SIGN | |
173 | 0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
174 | 0x9e 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA | |
175 | 0x9f 0x015f #LATIN SMALL LETTER S WITH CEDILLA | |
176 | 0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
177 | 0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
178 | 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
179 | 0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
180 | 0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
181 | 0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
182 | 0xa6 0x011e #LATIN CAPITAL LETTER G WITH BREVE | |
183 | 0xa7 0x011f #LATIN SMALL LETTER G WITH BREVE | |
184 | 0xa8 0x00bf #INVERTED QUESTION MARK | |
185 | 0xa9 0x00ae #REGISTERED SIGN | |
186 | 0xaa 0x00ac #NOT SIGN | |
187 | 0xab 0x00bd #VULGAR FRACTION ONE HALF | |
188 | 0xac 0x00bc #VULGAR FRACTION ONE QUARTER | |
189 | 0xad 0x00a1 #INVERTED EXCLAMATION MARK | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
198 | 0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
199 | 0xb7 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE | |
200 | 0xb8 0x00a9 #COPYRIGHT SIGN | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x00a2 #CENT SIGN | |
206 | 0xbe 0x00a5 #YEN SIGN | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x00e3 #LATIN SMALL LETTER A WITH TILDE | |
215 | 0xc7 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x00a4 #CURRENCY SIGN | |
224 | 0xd0 0x00ba #MASCULINE ORDINAL INDICATOR | |
225 | 0xd1 0x00aa #FEMININE ORDINAL INDICATOR | |
226 | 0xd2 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
227 | 0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
228 | 0xd4 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE | |
229 | 0xd5 #UNDEFINED | |
230 | 0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
231 | 0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
232 | 0xd8 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x00a6 #BROKEN BAR | |
238 | 0xde 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
241 | 0xe1 0x00df #LATIN SMALL LETTER SHARP S | |
242 | 0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
243 | 0xe3 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE | |
244 | 0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
245 | 0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
246 | 0xe6 0x00b5 #MICRO SIGN | |
247 | 0xe7 #UNDEFINED | |
248 | 0xe8 0x00d7 #MULTIPLICATION SIGN | |
249 | 0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
250 | 0xea 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
251 | 0xeb 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE | |
252 | 0xec 0x00ec #LATIN SMALL LETTER I WITH GRAVE | |
253 | 0xed 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS | |
254 | 0xee 0x00af #MACRON | |
255 | 0xef 0x00b4 #ACUTE ACCENT | |
256 | 0xf0 0x00ad #SOFT HYPHEN | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 #UNDEFINED | |
259 | 0xf3 0x00be #VULGAR FRACTION THREE QUARTERS | |
260 | 0xf4 0x00b6 #PILCROW SIGN | |
261 | 0xf5 0x00a7 #SECTION SIGN | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x00b8 #CEDILLA | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x00a8 #DIAERESIS | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x00b9 #SUPERSCRIPT ONE | |
268 | 0xfc 0x00b3 #SUPERSCRIPT THREE | |
269 | 0xfd 0x00b2 #SUPERSCRIPT TWO | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp858 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp858 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp858 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
145 | 0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
146 | 0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
147 | 0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
148 | 0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
149 | 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
150 | 0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
151 | 0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
152 | 0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
153 | 0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
154 | 0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
155 | 0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
156 | 0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
157 | 0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE | |
158 | 0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
159 | 0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
160 | 0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
161 | 0x91 0x00e6 #LATIN SMALL LETTER AE | |
162 | 0x92 0x00c6 #LATIN CAPITAL LETTER AE | |
163 | 0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
164 | 0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
165 | 0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE | |
166 | 0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
167 | 0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
168 | 0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS | |
169 | 0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
170 | 0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
171 | 0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
172 | 0x9c 0x00a3 #POUND SIGN | |
173 | 0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
174 | 0x9e 0x00d7 #MULTIPLICATION SIGN | |
175 | 0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
176 | 0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
177 | 0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
178 | 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
179 | 0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
180 | 0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
181 | 0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
182 | 0xa6 0x00aa #FEMININE ORDINAL INDICATOR | |
183 | 0xa7 0x00ba #MASCULINE ORDINAL INDICATOR | |
184 | 0xa8 0x00bf #INVERTED QUESTION MARK | |
185 | 0xa9 0x00ae #REGISTERED SIGN | |
186 | 0xaa 0x00ac #NOT SIGN | |
187 | 0xab 0x00bd #VULGAR FRACTION ONE HALF | |
188 | 0xac 0x00bc #VULGAR FRACTION ONE QUARTER | |
189 | 0xad 0x00a1 #INVERTED EXCLAMATION MARK | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
198 | 0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
199 | 0xb7 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE | |
200 | 0xb8 0x00a9 #COPYRIGHT SIGN | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x00a2 #CENT SIGN | |
206 | 0xbe 0x00a5 #YEN SIGN | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x00e3 #LATIN SMALL LETTER A WITH TILDE | |
215 | 0xc7 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x00a4 #CURRENCY SIGN | |
224 | 0xd0 0x00f0 #LATIN SMALL LETTER ETH | |
225 | 0xd1 0x00d0 #LATIN CAPITAL LETTER ETH | |
226 | 0xd2 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
227 | 0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
228 | 0xd4 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE | |
229 | 0xd5 0x20ac #EURO SIGN | |
230 | 0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
231 | 0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
232 | 0xd8 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x00a6 #BROKEN BAR | |
238 | 0xde 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
241 | 0xe1 0x00df #LATIN SMALL LETTER SHARP S | |
242 | 0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
243 | 0xe3 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE | |
244 | 0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
245 | 0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
246 | 0xe6 0x00b5 #MICRO SIGN | |
247 | 0xe7 0x00fe #LATIN SMALL LETTER THORN | |
248 | 0xe8 0x00de #LATIN CAPITAL LETTER THORN | |
249 | 0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
250 | 0xea 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
251 | 0xeb 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE | |
252 | 0xec 0x00fd #LATIN SMALL LETTER Y WITH ACUTE | |
253 | 0xed 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE | |
254 | 0xee 0x00af #MACRON | |
255 | 0xef 0x00b4 #ACUTE ACCENT | |
256 | 0xf0 0x00ad #SOFT HYPHEN | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 0x2017 #DOUBLE LOW LINE | |
259 | 0xf3 0x00be #VULGAR FRACTION THREE QUARTERS | |
260 | 0xf4 0x00b6 #PILCROW SIGN | |
261 | 0xf5 0x00a7 #SECTION SIGN | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x00b8 #CEDILLA | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x00a8 #DIAERESIS | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x00b9 #SUPERSCRIPT ONE | |
268 | 0xfc 0x00b3 #SUPERSCRIPT THREE | |
269 | 0xfd 0x00b2 #SUPERSCRIPT TWO | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp860 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp860 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp860 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
145 | 0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
146 | 0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
147 | 0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
148 | 0x84 0x00e3 #LATIN SMALL LETTER A WITH TILDE | |
149 | 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
150 | 0x86 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
151 | 0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
152 | 0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
153 | 0x89 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
154 | 0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
155 | 0x8b 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
156 | 0x8c 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
157 | 0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE | |
158 | 0x8e 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE | |
159 | 0x8f 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
160 | 0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
161 | 0x91 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE | |
162 | 0x92 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE | |
163 | 0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
164 | 0x94 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
165 | 0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE | |
166 | 0x96 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
167 | 0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
168 | 0x98 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE | |
169 | 0x99 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
170 | 0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
171 | 0x9b 0x00a2 #CENT SIGN | |
172 | 0x9c 0x00a3 #POUND SIGN | |
173 | 0x9d 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE | |
174 | 0x9e 0x20a7 #PESETA SIGN | |
175 | 0x9f 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
176 | 0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
177 | 0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
178 | 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
179 | 0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
180 | 0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
181 | 0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
182 | 0xa6 0x00aa #FEMININE ORDINAL INDICATOR | |
183 | 0xa7 0x00ba #MASCULINE ORDINAL INDICATOR | |
184 | 0xa8 0x00bf #INVERTED QUESTION MARK | |
185 | 0xa9 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE | |
186 | 0xaa 0x00ac #NOT SIGN | |
187 | 0xab 0x00bd #VULGAR FRACTION ONE HALF | |
188 | 0xac 0x00bc #VULGAR FRACTION ONE QUARTER | |
189 | 0xad 0x00a1 #INVERTED EXCLAMATION MARK | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE | |
198 | 0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE | |
199 | 0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE | |
200 | 0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE | |
206 | 0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE | |
215 | 0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE | |
224 | 0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE | |
225 | 0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE | |
226 | 0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE | |
227 | 0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE | |
228 | 0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE | |
229 | 0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE | |
230 | 0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE | |
231 | 0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE | |
232 | 0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x258c #LEFT HALF BLOCK | |
238 | 0xde 0x2590 #RIGHT HALF BLOCK | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x03b1 #GREEK SMALL LETTER ALPHA | |
241 | 0xe1 0x00df #LATIN SMALL LETTER SHARP S | |
242 | 0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA | |
243 | 0xe3 0x03c0 #GREEK SMALL LETTER PI | |
244 | 0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA | |
245 | 0xe5 0x03c3 #GREEK SMALL LETTER SIGMA | |
246 | 0xe6 0x00b5 #MICRO SIGN | |
247 | 0xe7 0x03c4 #GREEK SMALL LETTER TAU | |
248 | 0xe8 0x03a6 #GREEK CAPITAL LETTER PHI | |
249 | 0xe9 0x0398 #GREEK CAPITAL LETTER THETA | |
250 | 0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA | |
251 | 0xeb 0x03b4 #GREEK SMALL LETTER DELTA | |
252 | 0xec 0x221e #INFINITY | |
253 | 0xed 0x03c6 #GREEK SMALL LETTER PHI | |
254 | 0xee 0x03b5 #GREEK SMALL LETTER EPSILON | |
255 | 0xef 0x2229 #INTERSECTION | |
256 | 0xf0 0x2261 #IDENTICAL TO | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 0x2265 #GREATER-THAN OR EQUAL TO | |
259 | 0xf3 0x2264 #LESS-THAN OR EQUAL TO | |
260 | 0xf4 0x2320 #TOP HALF INTEGRAL | |
261 | 0xf5 0x2321 #BOTTOM HALF INTEGRAL | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x2248 #ALMOST EQUAL TO | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x2219 #BULLET OPERATOR | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x221a #SQUARE ROOT | |
268 | 0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N | |
269 | 0xfd 0x00b2 #SUPERSCRIPT TWO | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp861 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp861 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp861 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
145 | 0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
146 | 0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
147 | 0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
148 | 0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
149 | 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
150 | 0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
151 | 0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
152 | 0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
153 | 0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
154 | 0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
155 | 0x8b 0x00d0 #LATIN CAPITAL LETTER ETH | |
156 | 0x8c 0x00f0 #LATIN SMALL LETTER ETH | |
157 | 0x8d 0x00de #LATIN CAPITAL LETTER THORN | |
158 | 0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
159 | 0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
160 | 0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
161 | 0x91 0x00e6 #LATIN SMALL LETTER AE | |
162 | 0x92 0x00c6 #LATIN CAPITAL LETTER AE | |
163 | 0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
164 | 0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
165 | 0x95 0x00fe #LATIN SMALL LETTER THORN | |
166 | 0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
167 | 0x97 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE | |
168 | 0x98 0x00fd #LATIN SMALL LETTER Y WITH ACUTE | |
169 | 0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
170 | 0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
171 | 0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
172 | 0x9c 0x00a3 #POUND SIGN | |
173 | 0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
174 | 0x9e 0x20a7 #PESETA SIGN | |
175 | 0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
176 | 0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
177 | 0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
178 | 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
179 | 0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
180 | 0xa4 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
181 | 0xa5 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
182 | 0xa6 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
183 | 0xa7 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
184 | 0xa8 0x00bf #INVERTED QUESTION MARK | |
185 | 0xa9 0x2310 #REVERSED NOT SIGN | |
186 | 0xaa 0x00ac #NOT SIGN | |
187 | 0xab 0x00bd #VULGAR FRACTION ONE HALF | |
188 | 0xac 0x00bc #VULGAR FRACTION ONE QUARTER | |
189 | 0xad 0x00a1 #INVERTED EXCLAMATION MARK | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE | |
198 | 0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE | |
199 | 0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE | |
200 | 0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE | |
206 | 0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE | |
215 | 0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE | |
224 | 0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE | |
225 | 0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE | |
226 | 0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE | |
227 | 0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE | |
228 | 0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE | |
229 | 0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE | |
230 | 0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE | |
231 | 0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE | |
232 | 0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x258c #LEFT HALF BLOCK | |
238 | 0xde 0x2590 #RIGHT HALF BLOCK | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x03b1 #GREEK SMALL LETTER ALPHA | |
241 | 0xe1 0x00df #LATIN SMALL LETTER SHARP S | |
242 | 0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA | |
243 | 0xe3 0x03c0 #GREEK SMALL LETTER PI | |
244 | 0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA | |
245 | 0xe5 0x03c3 #GREEK SMALL LETTER SIGMA | |
246 | 0xe6 0x00b5 #MICRO SIGN | |
247 | 0xe7 0x03c4 #GREEK SMALL LETTER TAU | |
248 | 0xe8 0x03a6 #GREEK CAPITAL LETTER PHI | |
249 | 0xe9 0x0398 #GREEK CAPITAL LETTER THETA | |
250 | 0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA | |
251 | 0xeb 0x03b4 #GREEK SMALL LETTER DELTA | |
252 | 0xec 0x221e #INFINITY | |
253 | 0xed 0x03c6 #GREEK SMALL LETTER PHI | |
254 | 0xee 0x03b5 #GREEK SMALL LETTER EPSILON | |
255 | 0xef 0x2229 #INTERSECTION | |
256 | 0xf0 0x2261 #IDENTICAL TO | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 0x2265 #GREATER-THAN OR EQUAL TO | |
259 | 0xf3 0x2264 #LESS-THAN OR EQUAL TO | |
260 | 0xf4 0x2320 #TOP HALF INTEGRAL | |
261 | 0xf5 0x2321 #BOTTOM HALF INTEGRAL | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x2248 #ALMOST EQUAL TO | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x2219 #BULLET OPERATOR | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x221a #SQUARE ROOT | |
268 | 0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N | |
269 | 0xfd 0x00b2 #SUPERSCRIPT TWO | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp862 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp862 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp862 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x05d0 #HEBREW LETTER ALEF | |
145 | 0x81 0x05d1 #HEBREW LETTER BET | |
146 | 0x82 0x05d2 #HEBREW LETTER GIMEL | |
147 | 0x83 0x05d3 #HEBREW LETTER DALET | |
148 | 0x84 0x05d4 #HEBREW LETTER HE | |
149 | 0x85 0x05d5 #HEBREW LETTER VAV | |
150 | 0x86 0x05d6 #HEBREW LETTER ZAYIN | |
151 | 0x87 0x05d7 #HEBREW LETTER HET | |
152 | 0x88 0x05d8 #HEBREW LETTER TET | |
153 | 0x89 0x05d9 #HEBREW LETTER YOD | |
154 | 0x8a 0x05da #HEBREW LETTER FINAL KAF | |
155 | 0x8b 0x05db #HEBREW LETTER KAF | |
156 | 0x8c 0x05dc #HEBREW LETTER LAMED | |
157 | 0x8d 0x05dd #HEBREW LETTER FINAL MEM | |
158 | 0x8e 0x05de #HEBREW LETTER MEM | |
159 | 0x8f 0x05df #HEBREW LETTER FINAL NUN | |
160 | 0x90 0x05e0 #HEBREW LETTER NUN | |
161 | 0x91 0x05e1 #HEBREW LETTER SAMEKH | |
162 | 0x92 0x05e2 #HEBREW LETTER AYIN | |
163 | 0x93 0x05e3 #HEBREW LETTER FINAL PE | |
164 | 0x94 0x05e4 #HEBREW LETTER PE | |
165 | 0x95 0x05e5 #HEBREW LETTER FINAL TSADI | |
166 | 0x96 0x05e6 #HEBREW LETTER TSADI | |
167 | 0x97 0x05e7 #HEBREW LETTER QOF | |
168 | 0x98 0x05e8 #HEBREW LETTER RESH | |
169 | 0x99 0x05e9 #HEBREW LETTER SHIN | |
170 | 0x9a 0x05ea #HEBREW LETTER TAV | |
171 | 0x9b 0x00a2 #CENT SIGN | |
172 | 0x9c 0x00a3 #POUND SIGN | |
173 | 0x9d 0x00a5 #YEN SIGN | |
174 | 0x9e 0x20a7 #PESETA SIGN | |
175 | 0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
176 | 0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
177 | 0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
178 | 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
179 | 0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
180 | 0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
181 | 0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
182 | 0xa6 0x00aa #FEMININE ORDINAL INDICATOR | |
183 | 0xa7 0x00ba #MASCULINE ORDINAL INDICATOR | |
184 | 0xa8 0x00bf #INVERTED QUESTION MARK | |
185 | 0xa9 0x2310 #REVERSED NOT SIGN | |
186 | 0xaa 0x00ac #NOT SIGN | |
187 | 0xab 0x00bd #VULGAR FRACTION ONE HALF | |
188 | 0xac 0x00bc #VULGAR FRACTION ONE QUARTER | |
189 | 0xad 0x00a1 #INVERTED EXCLAMATION MARK | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE | |
198 | 0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE | |
199 | 0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE | |
200 | 0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE | |
206 | 0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE | |
215 | 0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE | |
224 | 0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE | |
225 | 0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE | |
226 | 0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE | |
227 | 0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE | |
228 | 0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE | |
229 | 0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE | |
230 | 0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE | |
231 | 0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE | |
232 | 0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x258c #LEFT HALF BLOCK | |
238 | 0xde 0x2590 #RIGHT HALF BLOCK | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x03b1 #GREEK SMALL LETTER ALPHA | |
241 | 0xe1 0x00df #LATIN SMALL LETTER SHARP S | |
242 | 0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA | |
243 | 0xe3 0x03c0 #GREEK SMALL LETTER PI | |
244 | 0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA | |
245 | 0xe5 0x03c3 #GREEK SMALL LETTER SIGMA | |
246 | 0xe6 0x00b5 #MICRO SIGN | |
247 | 0xe7 0x03c4 #GREEK SMALL LETTER TAU | |
248 | 0xe8 0x03a6 #GREEK CAPITAL LETTER PHI | |
249 | 0xe9 0x0398 #GREEK CAPITAL LETTER THETA | |
250 | 0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA | |
251 | 0xeb 0x03b4 #GREEK SMALL LETTER DELTA | |
252 | 0xec 0x221e #INFINITY | |
253 | 0xed 0x03c6 #GREEK SMALL LETTER PHI | |
254 | 0xee 0x03b5 #GREEK SMALL LETTER EPSILON | |
255 | 0xef 0x2229 #INTERSECTION | |
256 | 0xf0 0x2261 #IDENTICAL TO | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 0x2265 #GREATER-THAN OR EQUAL TO | |
259 | 0xf3 0x2264 #LESS-THAN OR EQUAL TO | |
260 | 0xf4 0x2320 #TOP HALF INTEGRAL | |
261 | 0xf5 0x2321 #BOTTOM HALF INTEGRAL | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x2248 #ALMOST EQUAL TO | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x2219 #BULLET OPERATOR | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x221a #SQUARE ROOT | |
268 | 0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N | |
269 | 0xfd 0x00b2 #SUPERSCRIPT TWO | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp863 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp863 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp863 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
145 | 0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
146 | 0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
147 | 0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
148 | 0x84 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
149 | 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
150 | 0x86 0x00b6 #PILCROW SIGN | |
151 | 0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
152 | 0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
153 | 0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
154 | 0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
155 | 0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
156 | 0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
157 | 0x8d 0x2017 #DOUBLE LOW LINE | |
158 | 0x8e 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE | |
159 | 0x8f 0x00a7 #SECTION SIGN | |
160 | 0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
161 | 0x91 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE | |
162 | 0x92 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
163 | 0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
164 | 0x94 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
165 | 0x95 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS | |
166 | 0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
167 | 0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
168 | 0x98 0x00a4 #CURRENCY SIGN | |
169 | 0x99 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
170 | 0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
171 | 0x9b 0x00a2 #CENT SIGN | |
172 | 0x9c 0x00a3 #POUND SIGN | |
173 | 0x9d 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE | |
174 | 0x9e 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
175 | 0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
176 | 0xa0 0x00a6 #BROKEN BAR | |
177 | 0xa1 0x00b4 #ACUTE ACCENT | |
178 | 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
179 | 0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
180 | 0xa4 0x00a8 #DIAERESIS | |
181 | 0xa5 0x00b8 #CEDILLA | |
182 | 0xa6 0x00b3 #SUPERSCRIPT THREE | |
183 | 0xa7 0x00af #MACRON | |
184 | 0xa8 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
185 | 0xa9 0x2310 #REVERSED NOT SIGN | |
186 | 0xaa 0x00ac #NOT SIGN | |
187 | 0xab 0x00bd #VULGAR FRACTION ONE HALF | |
188 | 0xac 0x00bc #VULGAR FRACTION ONE QUARTER | |
189 | 0xad 0x00be #VULGAR FRACTION THREE QUARTERS | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE | |
198 | 0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE | |
199 | 0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE | |
200 | 0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE | |
206 | 0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE | |
215 | 0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE | |
224 | 0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE | |
225 | 0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE | |
226 | 0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE | |
227 | 0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE | |
228 | 0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE | |
229 | 0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE | |
230 | 0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE | |
231 | 0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE | |
232 | 0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x258c #LEFT HALF BLOCK | |
238 | 0xde 0x2590 #RIGHT HALF BLOCK | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x03b1 #GREEK SMALL LETTER ALPHA | |
241 | 0xe1 0x00df #LATIN SMALL LETTER SHARP S | |
242 | 0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA | |
243 | 0xe3 0x03c0 #GREEK SMALL LETTER PI | |
244 | 0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA | |
245 | 0xe5 0x03c3 #GREEK SMALL LETTER SIGMA | |
246 | 0xe6 0x00b5 #MICRO SIGN | |
247 | 0xe7 0x03c4 #GREEK SMALL LETTER TAU | |
248 | 0xe8 0x03a6 #GREEK CAPITAL LETTER PHI | |
249 | 0xe9 0x0398 #GREEK CAPITAL LETTER THETA | |
250 | 0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA | |
251 | 0xeb 0x03b4 #GREEK SMALL LETTER DELTA | |
252 | 0xec 0x221e #INFINITY | |
253 | 0xed 0x03c6 #GREEK SMALL LETTER PHI | |
254 | 0xee 0x03b5 #GREEK SMALL LETTER EPSILON | |
255 | 0xef 0x2229 #INTERSECTION | |
256 | 0xf0 0x2261 #IDENTICAL TO | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 0x2265 #GREATER-THAN OR EQUAL TO | |
259 | 0xf3 0x2264 #LESS-THAN OR EQUAL TO | |
260 | 0xf4 0x2320 #TOP HALF INTEGRAL | |
261 | 0xf5 0x2321 #BOTTOM HALF INTEGRAL | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x2248 #ALMOST EQUAL TO | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x2219 #BULLET OPERATOR | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x221a #SQUARE ROOT | |
268 | 0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N | |
269 | 0xfd 0x00b2 #SUPERSCRIPT TWO | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp864 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp864 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp864 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x066a #ARABIC PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x00b0 #DEGREE SIGN | |
145 | 0x81 0x00b7 #MIDDLE DOT | |
146 | 0x82 0x2219 #BULLET OPERATOR | |
147 | 0x83 0x221a #SQUARE ROOT | |
148 | 0x84 0x2592 #MEDIUM SHADE | |
149 | 0x85 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
150 | 0x86 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
151 | 0x87 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
152 | 0x88 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
153 | 0x89 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
154 | 0x8a 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
155 | 0x8b 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
156 | 0x8c 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
157 | 0x8d 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
158 | 0x8e 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
159 | 0x8f 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
160 | 0x90 0x03b2 #GREEK SMALL LETTER BETA | |
161 | 0x91 0x221e #INFINITY | |
162 | 0x92 0x03c6 #GREEK SMALL LETTER PHI | |
163 | 0x93 0x00b1 #PLUS-MINUS SIGN | |
164 | 0x94 0x00bd #VULGAR FRACTION ONE HALF | |
165 | 0x95 0x00bc #VULGAR FRACTION ONE QUARTER | |
166 | 0x96 0x2248 #ALMOST EQUAL TO | |
167 | 0x97 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
168 | 0x98 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
169 | 0x99 0xfef7 #ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM | |
170 | 0x9a 0xfef8 #ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM | |
171 | 0x9b #UNDEFINED | |
172 | 0x9c #UNDEFINED | |
173 | 0x9d 0xfefb #ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM | |
174 | 0x9e 0xfefc #ARABIC LIGATURE LAM WITH ALEF FINAL FORM | |
175 | 0x9f #UNDEFINED | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x00ad #SOFT HYPHEN | |
178 | 0xa2 0xfe82 #ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0xfe84 #ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM | |
182 | 0xa6 #UNDEFINED | |
183 | 0xa7 #UNDEFINED | |
184 | 0xa8 0xfe8e #ARABIC LETTER ALEF FINAL FORM | |
185 | 0xa9 0xfe8f #ARABIC LETTER BEH ISOLATED FORM | |
186 | 0xaa 0xfe95 #ARABIC LETTER TEH ISOLATED FORM | |
187 | 0xab 0xfe99 #ARABIC LETTER THEH ISOLATED FORM | |
188 | 0xac 0x060c #ARABIC COMMA | |
189 | 0xad 0xfe9d #ARABIC LETTER JEEM ISOLATED FORM | |
190 | 0xae 0xfea1 #ARABIC LETTER HAH ISOLATED FORM | |
191 | 0xaf 0xfea5 #ARABIC LETTER KHAH ISOLATED FORM | |
192 | 0xb0 0x0660 #ARABIC-INDIC DIGIT ZERO | |
193 | 0xb1 0x0661 #ARABIC-INDIC DIGIT ONE | |
194 | 0xb2 0x0662 #ARABIC-INDIC DIGIT TWO | |
195 | 0xb3 0x0663 #ARABIC-INDIC DIGIT THREE | |
196 | 0xb4 0x0664 #ARABIC-INDIC DIGIT FOUR | |
197 | 0xb5 0x0665 #ARABIC-INDIC DIGIT FIVE | |
198 | 0xb6 0x0666 #ARABIC-INDIC DIGIT SIX | |
199 | 0xb7 0x0667 #ARABIC-INDIC DIGIT SEVEN | |
200 | 0xb8 0x0668 #ARABIC-INDIC DIGIT EIGHT | |
201 | 0xb9 0x0669 #ARABIC-INDIC DIGIT NINE | |
202 | 0xba 0xfed1 #ARABIC LETTER FEH ISOLATED FORM | |
203 | 0xbb 0x061b #ARABIC SEMICOLON | |
204 | 0xbc 0xfeb1 #ARABIC LETTER SEEN ISOLATED FORM | |
205 | 0xbd 0xfeb5 #ARABIC LETTER SHEEN ISOLATED FORM | |
206 | 0xbe 0xfeb9 #ARABIC LETTER SAD ISOLATED FORM | |
207 | 0xbf 0x061f #ARABIC QUESTION MARK | |
208 | 0xc0 0x00a2 #CENT SIGN | |
209 | 0xc1 0xfe80 #ARABIC LETTER HAMZA ISOLATED FORM | |
210 | 0xc2 0xfe81 #ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM | |
211 | 0xc3 0xfe83 #ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM | |
212 | 0xc4 0xfe85 #ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM | |
213 | 0xc5 0xfeca #ARABIC LETTER AIN FINAL FORM | |
214 | 0xc6 0xfe8b #ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM | |
215 | 0xc7 0xfe8d #ARABIC LETTER ALEF ISOLATED FORM | |
216 | 0xc8 0xfe91 #ARABIC LETTER BEH INITIAL FORM | |
217 | 0xc9 0xfe93 #ARABIC LETTER TEH MARBUTA ISOLATED FORM | |
218 | 0xca 0xfe97 #ARABIC LETTER TEH INITIAL FORM | |
219 | 0xcb 0xfe9b #ARABIC LETTER THEH INITIAL FORM | |
220 | 0xcc 0xfe9f #ARABIC LETTER JEEM INITIAL FORM | |
221 | 0xcd 0xfea3 #ARABIC LETTER HAH INITIAL FORM | |
222 | 0xce 0xfea7 #ARABIC LETTER KHAH INITIAL FORM | |
223 | 0xcf 0xfea9 #ARABIC LETTER DAL ISOLATED FORM | |
224 | 0xd0 0xfeab #ARABIC LETTER THAL ISOLATED FORM | |
225 | 0xd1 0xfead #ARABIC LETTER REH ISOLATED FORM | |
226 | 0xd2 0xfeaf #ARABIC LETTER ZAIN ISOLATED FORM | |
227 | 0xd3 0xfeb3 #ARABIC LETTER SEEN INITIAL FORM | |
228 | 0xd4 0xfeb7 #ARABIC LETTER SHEEN INITIAL FORM | |
229 | 0xd5 0xfebb #ARABIC LETTER SAD INITIAL FORM | |
230 | 0xd6 0xfebf #ARABIC LETTER DAD INITIAL FORM | |
231 | 0xd7 0xfec1 #ARABIC LETTER TAH ISOLATED FORM | |
232 | 0xd8 0xfec5 #ARABIC LETTER ZAH ISOLATED FORM | |
233 | 0xd9 0xfecb #ARABIC LETTER AIN INITIAL FORM | |
234 | 0xda 0xfecf #ARABIC LETTER GHAIN INITIAL FORM | |
235 | 0xdb 0x00a6 #BROKEN BAR | |
236 | 0xdc 0x00ac #NOT SIGN | |
237 | 0xdd 0x00f7 #DIVISION SIGN | |
238 | 0xde 0x00d7 #MULTIPLICATION SIGN | |
239 | 0xdf 0xfec9 #ARABIC LETTER AIN ISOLATED FORM | |
240 | 0xe0 0x0640 #ARABIC TATWEEL | |
241 | 0xe1 0xfed3 #ARABIC LETTER FEH INITIAL FORM | |
242 | 0xe2 0xfed7 #ARABIC LETTER QAF INITIAL FORM | |
243 | 0xe3 0xfedb #ARABIC LETTER KAF INITIAL FORM | |
244 | 0xe4 0xfedf #ARABIC LETTER LAM INITIAL FORM | |
245 | 0xe5 0xfee3 #ARABIC LETTER MEEM INITIAL FORM | |
246 | 0xe6 0xfee7 #ARABIC LETTER NOON INITIAL FORM | |
247 | 0xe7 0xfeeb #ARABIC LETTER HEH INITIAL FORM | |
248 | 0xe8 0xfeed #ARABIC LETTER WAW ISOLATED FORM | |
249 | 0xe9 0xfeef #ARABIC LETTER ALEF MAKSURA ISOLATED FORM | |
250 | 0xea 0xfef3 #ARABIC LETTER YEH INITIAL FORM | |
251 | 0xeb 0xfebd #ARABIC LETTER DAD ISOLATED FORM | |
252 | 0xec 0xfecc #ARABIC LETTER AIN MEDIAL FORM | |
253 | 0xed 0xfece #ARABIC LETTER GHAIN FINAL FORM | |
254 | 0xee 0xfecd #ARABIC LETTER GHAIN ISOLATED FORM | |
255 | 0xef 0xfee1 #ARABIC LETTER MEEM ISOLATED FORM | |
256 | 0xf0 0xfe7d #ARABIC SHADDA MEDIAL FORM | |
257 | 0xf1 0x0651 #ARABIC SHADDA | |
258 | 0xf2 0xfee5 #ARABIC LETTER NOON ISOLATED FORM | |
259 | 0xf3 0xfee9 #ARABIC LETTER HEH ISOLATED FORM | |
260 | 0xf4 0xfeec #ARABIC LETTER HEH MEDIAL FORM | |
261 | 0xf5 0xfef0 #ARABIC LETTER ALEF MAKSURA FINAL FORM | |
262 | 0xf6 0xfef2 #ARABIC LETTER YEH FINAL FORM | |
263 | 0xf7 0xfed0 #ARABIC LETTER GHAIN MEDIAL FORM | |
264 | 0xf8 0xfed5 #ARABIC LETTER QAF ISOLATED FORM | |
265 | 0xf9 0xfef5 #ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM | |
266 | 0xfa 0xfef6 #ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM | |
267 | 0xfb 0xfedd #ARABIC LETTER LAM ISOLATED FORM | |
268 | 0xfc 0xfed9 #ARABIC LETTER KAF ISOLATED FORM | |
269 | 0xfd 0xfef1 #ARABIC LETTER YEH ISOLATED FORM | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff #UNDEFINED | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp865 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp865 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp865 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
145 | 0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
146 | 0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
147 | 0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
148 | 0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
149 | 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
150 | 0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
151 | 0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
152 | 0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
153 | 0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
154 | 0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
155 | 0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
156 | 0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
157 | 0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE | |
158 | 0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
159 | 0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
160 | 0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
161 | 0x91 0x00e6 #LATIN SMALL LETTER AE | |
162 | 0x92 0x00c6 #LATIN CAPITAL LETTER AE | |
163 | 0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
164 | 0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
165 | 0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE | |
166 | 0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
167 | 0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
168 | 0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS | |
169 | 0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
170 | 0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
171 | 0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
172 | 0x9c 0x00a3 #POUND SIGN | |
173 | 0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
174 | 0x9e 0x20a7 #PESETA SIGN | |
175 | 0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
176 | 0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
177 | 0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
178 | 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
179 | 0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
180 | 0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
181 | 0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
182 | 0xa6 0x00aa #FEMININE ORDINAL INDICATOR | |
183 | 0xa7 0x00ba #MASCULINE ORDINAL INDICATOR | |
184 | 0xa8 0x00bf #INVERTED QUESTION MARK | |
185 | 0xa9 0x2310 #REVERSED NOT SIGN | |
186 | 0xaa 0x00ac #NOT SIGN | |
187 | 0xab 0x00bd #VULGAR FRACTION ONE HALF | |
188 | 0xac 0x00bc #VULGAR FRACTION ONE QUARTER | |
189 | 0xad 0x00a1 #INVERTED EXCLAMATION MARK | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00a4 #CURRENCY SIGN | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE | |
198 | 0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE | |
199 | 0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE | |
200 | 0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE | |
206 | 0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE | |
215 | 0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE | |
224 | 0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE | |
225 | 0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE | |
226 | 0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE | |
227 | 0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE | |
228 | 0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE | |
229 | 0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE | |
230 | 0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE | |
231 | 0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE | |
232 | 0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x258c #LEFT HALF BLOCK | |
238 | 0xde 0x2590 #RIGHT HALF BLOCK | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x03b1 #GREEK SMALL LETTER ALPHA | |
241 | 0xe1 0x00df #LATIN SMALL LETTER SHARP S | |
242 | 0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA | |
243 | 0xe3 0x03c0 #GREEK SMALL LETTER PI | |
244 | 0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA | |
245 | 0xe5 0x03c3 #GREEK SMALL LETTER SIGMA | |
246 | 0xe6 0x00b5 #MICRO SIGN | |
247 | 0xe7 0x03c4 #GREEK SMALL LETTER TAU | |
248 | 0xe8 0x03a6 #GREEK CAPITAL LETTER PHI | |
249 | 0xe9 0x0398 #GREEK CAPITAL LETTER THETA | |
250 | 0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA | |
251 | 0xeb 0x03b4 #GREEK SMALL LETTER DELTA | |
252 | 0xec 0x221e #INFINITY | |
253 | 0xed 0x03c6 #GREEK SMALL LETTER PHI | |
254 | 0xee 0x03b5 #GREEK SMALL LETTER EPSILON | |
255 | 0xef 0x2229 #INTERSECTION | |
256 | 0xf0 0x2261 #IDENTICAL TO | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 0x2265 #GREATER-THAN OR EQUAL TO | |
259 | 0xf3 0x2264 #LESS-THAN OR EQUAL TO | |
260 | 0xf4 0x2320 #TOP HALF INTEGRAL | |
261 | 0xf5 0x2321 #BOTTOM HALF INTEGRAL | |
262 | 0xf6 0x00f7 #DIVISION SIGN | |
263 | 0xf7 0x2248 #ALMOST EQUAL TO | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x2219 #BULLET OPERATOR | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x221a #SQUARE ROOT | |
268 | 0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N | |
269 | 0xfd 0x00b2 #SUPERSCRIPT TWO | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp866 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp866 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp866 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0410 #CYRILLIC CAPITAL LETTER A | |
145 | 0x81 0x0411 #CYRILLIC CAPITAL LETTER BE | |
146 | 0x82 0x0412 #CYRILLIC CAPITAL LETTER VE | |
147 | 0x83 0x0413 #CYRILLIC CAPITAL LETTER GHE | |
148 | 0x84 0x0414 #CYRILLIC CAPITAL LETTER DE | |
149 | 0x85 0x0415 #CYRILLIC CAPITAL LETTER IE | |
150 | 0x86 0x0416 #CYRILLIC CAPITAL LETTER ZHE | |
151 | 0x87 0x0417 #CYRILLIC CAPITAL LETTER ZE | |
152 | 0x88 0x0418 #CYRILLIC CAPITAL LETTER I | |
153 | 0x89 0x0419 #CYRILLIC CAPITAL LETTER SHORT I | |
154 | 0x8a 0x041a #CYRILLIC CAPITAL LETTER KA | |
155 | 0x8b 0x041b #CYRILLIC CAPITAL LETTER EL | |
156 | 0x8c 0x041c #CYRILLIC CAPITAL LETTER EM | |
157 | 0x8d 0x041d #CYRILLIC CAPITAL LETTER EN | |
158 | 0x8e 0x041e #CYRILLIC CAPITAL LETTER O | |
159 | 0x8f 0x041f #CYRILLIC CAPITAL LETTER PE | |
160 | 0x90 0x0420 #CYRILLIC CAPITAL LETTER ER | |
161 | 0x91 0x0421 #CYRILLIC CAPITAL LETTER ES | |
162 | 0x92 0x0422 #CYRILLIC CAPITAL LETTER TE | |
163 | 0x93 0x0423 #CYRILLIC CAPITAL LETTER U | |
164 | 0x94 0x0424 #CYRILLIC CAPITAL LETTER EF | |
165 | 0x95 0x0425 #CYRILLIC CAPITAL LETTER HA | |
166 | 0x96 0x0426 #CYRILLIC CAPITAL LETTER TSE | |
167 | 0x97 0x0427 #CYRILLIC CAPITAL LETTER CHE | |
168 | 0x98 0x0428 #CYRILLIC CAPITAL LETTER SHA | |
169 | 0x99 0x0429 #CYRILLIC CAPITAL LETTER SHCHA | |
170 | 0x9a 0x042a #CYRILLIC CAPITAL LETTER HARD SIGN | |
171 | 0x9b 0x042b #CYRILLIC CAPITAL LETTER YERU | |
172 | 0x9c 0x042c #CYRILLIC CAPITAL LETTER SOFT SIGN | |
173 | 0x9d 0x042d #CYRILLIC CAPITAL LETTER E | |
174 | 0x9e 0x042e #CYRILLIC CAPITAL LETTER YU | |
175 | 0x9f 0x042f #CYRILLIC CAPITAL LETTER YA | |
176 | 0xa0 0x0430 #CYRILLIC SMALL LETTER A | |
177 | 0xa1 0x0431 #CYRILLIC SMALL LETTER BE | |
178 | 0xa2 0x0432 #CYRILLIC SMALL LETTER VE | |
179 | 0xa3 0x0433 #CYRILLIC SMALL LETTER GHE | |
180 | 0xa4 0x0434 #CYRILLIC SMALL LETTER DE | |
181 | 0xa5 0x0435 #CYRILLIC SMALL LETTER IE | |
182 | 0xa6 0x0436 #CYRILLIC SMALL LETTER ZHE | |
183 | 0xa7 0x0437 #CYRILLIC SMALL LETTER ZE | |
184 | 0xa8 0x0438 #CYRILLIC SMALL LETTER I | |
185 | 0xa9 0x0439 #CYRILLIC SMALL LETTER SHORT I | |
186 | 0xaa 0x043a #CYRILLIC SMALL LETTER KA | |
187 | 0xab 0x043b #CYRILLIC SMALL LETTER EL | |
188 | 0xac 0x043c #CYRILLIC SMALL LETTER EM | |
189 | 0xad 0x043d #CYRILLIC SMALL LETTER EN | |
190 | 0xae 0x043e #CYRILLIC SMALL LETTER O | |
191 | 0xaf 0x043f #CYRILLIC SMALL LETTER PE | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE | |
198 | 0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE | |
199 | 0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE | |
200 | 0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE | |
206 | 0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE | |
215 | 0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE | |
224 | 0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE | |
225 | 0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE | |
226 | 0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE | |
227 | 0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE | |
228 | 0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE | |
229 | 0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE | |
230 | 0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE | |
231 | 0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE | |
232 | 0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x258c #LEFT HALF BLOCK | |
238 | 0xde 0x2590 #RIGHT HALF BLOCK | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x0440 #CYRILLIC SMALL LETTER ER | |
241 | 0xe1 0x0441 #CYRILLIC SMALL LETTER ES | |
242 | 0xe2 0x0442 #CYRILLIC SMALL LETTER TE | |
243 | 0xe3 0x0443 #CYRILLIC SMALL LETTER U | |
244 | 0xe4 0x0444 #CYRILLIC SMALL LETTER EF | |
245 | 0xe5 0x0445 #CYRILLIC SMALL LETTER HA | |
246 | 0xe6 0x0446 #CYRILLIC SMALL LETTER TSE | |
247 | 0xe7 0x0447 #CYRILLIC SMALL LETTER CHE | |
248 | 0xe8 0x0448 #CYRILLIC SMALL LETTER SHA | |
249 | 0xe9 0x0449 #CYRILLIC SMALL LETTER SHCHA | |
250 | 0xea 0x044a #CYRILLIC SMALL LETTER HARD SIGN | |
251 | 0xeb 0x044b #CYRILLIC SMALL LETTER YERU | |
252 | 0xec 0x044c #CYRILLIC SMALL LETTER SOFT SIGN | |
253 | 0xed 0x044d #CYRILLIC SMALL LETTER E | |
254 | 0xee 0x044e #CYRILLIC SMALL LETTER YU | |
255 | 0xef 0x044f #CYRILLIC SMALL LETTER YA | |
256 | 0xf0 0x0401 #CYRILLIC CAPITAL LETTER IO | |
257 | 0xf1 0x0451 #CYRILLIC SMALL LETTER IO | |
258 | 0xf2 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE | |
259 | 0xf3 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE | |
260 | 0xf4 0x0407 #CYRILLIC CAPITAL LETTER YI | |
261 | 0xf5 0x0457 #CYRILLIC SMALL LETTER YI | |
262 | 0xf6 0x040e #CYRILLIC CAPITAL LETTER SHORT U | |
263 | 0xf7 0x045e #CYRILLIC SMALL LETTER SHORT U | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x2219 #BULLET OPERATOR | |
266 | 0xfa 0x00b7 #MIDDLE DOT | |
267 | 0xfb 0x221a #SQUARE ROOT | |
268 | 0xfc 0x2116 #NUMERO SIGN | |
269 | 0xfd 0x00a4 #CURRENCY SIGN | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp869 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp869 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp869 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 #UNDEFINED | |
145 | 0x81 #UNDEFINED | |
146 | 0x82 #UNDEFINED | |
147 | 0x83 #UNDEFINED | |
148 | 0x84 #UNDEFINED | |
149 | 0x85 #UNDEFINED | |
150 | 0x86 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS | |
151 | 0x87 #UNDEFINED | |
152 | 0x88 0x00b7 #MIDDLE DOT | |
153 | 0x89 0x00ac #NOT SIGN | |
154 | 0x8a 0x00a6 #BROKEN BAR | |
155 | 0x8b 0x2018 #LEFT SINGLE QUOTATION MARK | |
156 | 0x8c 0x2019 #RIGHT SINGLE QUOTATION MARK | |
157 | 0x8d 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS | |
158 | 0x8e 0x2015 #HORIZONTAL BAR | |
159 | 0x8f 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS | |
160 | 0x90 0x038a #GREEK CAPITAL LETTER IOTA WITH TONOS | |
161 | 0x91 0x03aa #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA | |
162 | 0x92 0x038c #GREEK CAPITAL LETTER OMICRON WITH TONOS | |
163 | 0x93 #UNDEFINED | |
164 | 0x94 #UNDEFINED | |
165 | 0x95 0x038e #GREEK CAPITAL LETTER UPSILON WITH TONOS | |
166 | 0x96 0x03ab #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA | |
167 | 0x97 0x00a9 #COPYRIGHT SIGN | |
168 | 0x98 0x038f #GREEK CAPITAL LETTER OMEGA WITH TONOS | |
169 | 0x99 0x00b2 #SUPERSCRIPT TWO | |
170 | 0x9a 0x00b3 #SUPERSCRIPT THREE | |
171 | 0x9b 0x03ac #GREEK SMALL LETTER ALPHA WITH TONOS | |
172 | 0x9c 0x00a3 #POUND SIGN | |
173 | 0x9d 0x03ad #GREEK SMALL LETTER EPSILON WITH TONOS | |
174 | 0x9e 0x03ae #GREEK SMALL LETTER ETA WITH TONOS | |
175 | 0x9f 0x03af #GREEK SMALL LETTER IOTA WITH TONOS | |
176 | 0xa0 0x03ca #GREEK SMALL LETTER IOTA WITH DIALYTIKA | |
177 | 0xa1 0x0390 #GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS | |
178 | 0xa2 0x03cc #GREEK SMALL LETTER OMICRON WITH TONOS | |
179 | 0xa3 0x03cd #GREEK SMALL LETTER UPSILON WITH TONOS | |
180 | 0xa4 0x0391 #GREEK CAPITAL LETTER ALPHA | |
181 | 0xa5 0x0392 #GREEK CAPITAL LETTER BETA | |
182 | 0xa6 0x0393 #GREEK CAPITAL LETTER GAMMA | |
183 | 0xa7 0x0394 #GREEK CAPITAL LETTER DELTA | |
184 | 0xa8 0x0395 #GREEK CAPITAL LETTER EPSILON | |
185 | 0xa9 0x0396 #GREEK CAPITAL LETTER ZETA | |
186 | 0xaa 0x0397 #GREEK CAPITAL LETTER ETA | |
187 | 0xab 0x00bd #VULGAR FRACTION ONE HALF | |
188 | 0xac 0x0398 #GREEK CAPITAL LETTER THETA | |
189 | 0xad 0x0399 #GREEK CAPITAL LETTER IOTA | |
190 | 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
191 | 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xb0 0x2591 #LIGHT SHADE | |
193 | 0xb1 0x2592 #MEDIUM SHADE | |
194 | 0xb2 0x2593 #DARK SHADE | |
195 | 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL | |
196 | 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT | |
197 | 0xb5 0x039a #GREEK CAPITAL LETTER KAPPA | |
198 | 0xb6 0x039b #GREEK CAPITAL LETTER LAMDA | |
199 | 0xb7 0x039c #GREEK CAPITAL LETTER MU | |
200 | 0xb8 0x039d #GREEK CAPITAL LETTER NU | |
201 | 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT | |
202 | 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL | |
203 | 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT | |
204 | 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT | |
205 | 0xbd 0x039e #GREEK CAPITAL LETTER XI | |
206 | 0xbe 0x039f #GREEK CAPITAL LETTER OMICRON | |
207 | 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT | |
208 | 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT | |
209 | 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL | |
210 | 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | |
211 | 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT | |
212 | 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL | |
213 | 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | |
214 | 0xc6 0x03a0 #GREEK CAPITAL LETTER PI | |
215 | 0xc7 0x03a1 #GREEK CAPITAL LETTER RHO | |
216 | 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT | |
217 | 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT | |
218 | 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL | |
219 | 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | |
220 | 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | |
221 | 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL | |
222 | 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | |
223 | 0xcf 0x03a3 #GREEK CAPITAL LETTER SIGMA | |
224 | 0xd0 0x03a4 #GREEK CAPITAL LETTER TAU | |
225 | 0xd1 0x03a5 #GREEK CAPITAL LETTER UPSILON | |
226 | 0xd2 0x03a6 #GREEK CAPITAL LETTER PHI | |
227 | 0xd3 0x03a7 #GREEK CAPITAL LETTER CHI | |
228 | 0xd4 0x03a8 #GREEK CAPITAL LETTER PSI | |
229 | 0xd5 0x03a9 #GREEK CAPITAL LETTER OMEGA | |
230 | 0xd6 0x03b1 #GREEK SMALL LETTER ALPHA | |
231 | 0xd7 0x03b2 #GREEK SMALL LETTER BETA | |
232 | 0xd8 0x03b3 #GREEK SMALL LETTER GAMMA | |
233 | 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT | |
234 | 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT | |
235 | 0xdb 0x2588 #FULL BLOCK | |
236 | 0xdc 0x2584 #LOWER HALF BLOCK | |
237 | 0xdd 0x03b4 #GREEK SMALL LETTER DELTA | |
238 | 0xde 0x03b5 #GREEK SMALL LETTER EPSILON | |
239 | 0xdf 0x2580 #UPPER HALF BLOCK | |
240 | 0xe0 0x03b6 #GREEK SMALL LETTER ZETA | |
241 | 0xe1 0x03b7 #GREEK SMALL LETTER ETA | |
242 | 0xe2 0x03b8 #GREEK SMALL LETTER THETA | |
243 | 0xe3 0x03b9 #GREEK SMALL LETTER IOTA | |
244 | 0xe4 0x03ba #GREEK SMALL LETTER KAPPA | |
245 | 0xe5 0x03bb #GREEK SMALL LETTER LAMDA | |
246 | 0xe6 0x03bc #GREEK SMALL LETTER MU | |
247 | 0xe7 0x03bd #GREEK SMALL LETTER NU | |
248 | 0xe8 0x03be #GREEK SMALL LETTER XI | |
249 | 0xe9 0x03bf #GREEK SMALL LETTER OMICRON | |
250 | 0xea 0x03c0 #GREEK SMALL LETTER PI | |
251 | 0xeb 0x03c1 #GREEK SMALL LETTER RHO | |
252 | 0xec 0x03c3 #GREEK SMALL LETTER SIGMA | |
253 | 0xed 0x03c2 #GREEK SMALL LETTER FINAL SIGMA | |
254 | 0xee 0x03c4 #GREEK SMALL LETTER TAU | |
255 | 0xef 0x0384 #GREEK TONOS | |
256 | 0xf0 0x00ad #SOFT HYPHEN | |
257 | 0xf1 0x00b1 #PLUS-MINUS SIGN | |
258 | 0xf2 0x03c5 #GREEK SMALL LETTER UPSILON | |
259 | 0xf3 0x03c6 #GREEK SMALL LETTER PHI | |
260 | 0xf4 0x03c7 #GREEK SMALL LETTER CHI | |
261 | 0xf5 0x00a7 #SECTION SIGN | |
262 | 0xf6 0x03c8 #GREEK SMALL LETTER PSI | |
263 | 0xf7 0x0385 #GREEK DIALYTIKA TONOS | |
264 | 0xf8 0x00b0 #DEGREE SIGN | |
265 | 0xf9 0x00a8 #DIAERESIS | |
266 | 0xfa 0x03c9 #GREEK SMALL LETTER OMEGA | |
267 | 0xfb 0x03cb #GREEK SMALL LETTER UPSILON WITH DIALYTIKA | |
268 | 0xfc 0x03b0 #GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS | |
269 | 0xfd 0x03ce #GREEK SMALL LETTER OMEGA WITH TONOS | |
270 | 0xfe 0x25a0 #BLACK SQUARE | |
271 | 0xff 0x00a0 #NO-BREAK SPACE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
3 | 3 | |
4 | 4 | Unicode mapping table generated from file asia/OTHER/BIG5.TXT |
5 | 5 | |
6 | # | |
7 | 6 | # Name: BIG5 to Unicode table (complete) |
8 | 7 | # Unicode version: 1.1 |
9 | 8 | # Table version: 0.0d3 |
10 | 9 | # Table format: Format A |
11 | 10 | # Date: 11 February 1994 |
12 | # Authors: Glenn Adams <glenn@metis.com> | |
13 | # John H. Jenkins <John_Jenkins@taligent.com> | |
14 | # | |
15 | # | |
16 | # This file is provided as-is by Unicode, Inc. (The Unicode Consortium). | |
17 | # No claims are made as to fitness for any particular purpose. No | |
18 | # warranties of any kind are expressed or implied. The recipient | |
19 | # agrees to determine applicability of information provided. If this | |
20 | # file has been provided on magnetic media by Unicode, Inc., the sole | |
21 | # remedy for any claim will be exchange of defective media within 90 | |
22 | # days of receipt. | |
23 | # | |
24 | # Recipient is granted the right to make copies in any form for | |
25 | # internal distribution and to freely use the information supplied | |
26 | # in the creation of products supporting Unicode. Unicode, Inc. | |
27 | # specifically excludes the right to re-distribute this file directly | |
28 | # to third parties or other organizations whether for profit or not. | |
29 | # | |
30 | # General notes: | |
31 | # | |
32 | # This table contains the data Metis and Taligent currently have on how | |
33 | # BIG5 characters map into Unicode. | |
34 | # | |
35 | # WARNING! It is currently impossible to provide round-trip compatibility | |
36 | # between BIG5 and Unicode. | |
37 | # | |
38 | # A number of characters are not currently mapped because | |
39 | # of conflicts with other mappings. They are as follows: | |
40 | # | |
41 | # BIG5 Description Comments | |
42 | # | |
43 | # 0xA15A SPACING UNDERSCORE duplicates A1C4 | |
44 | # 0xA1C3 SPACING HEAVY OVERSCORE not in Unicode | |
45 | # 0xA1C5 SPACING HEAVY UNDERSCORE not in Unicode | |
46 | # 0xA1FE LT DIAG UP RIGHT TO LOW LEFT duplicates A2AC | |
47 | # 0xA240 LT DIAG UP LEFT TO LOW RIGHT duplicates A2AD | |
48 | # 0xA2CC HANGZHOU NUMERAL TEN conflicts with A451 mapping | |
49 | # 0xA2CE HANGZHOU NUMERAL THIRTY conflicts with A4CA mapping | |
50 | # | |
51 | # We currently map all of these characters to U+FFFD REPLACEMENT CHARACTER. | |
52 | # It is also possible to map these characters to their duplicates, or to | |
53 | # the user zone. | |
54 | # | |
55 | # Notes: | |
56 | # | |
57 | # 1. In addition to the above, there is some uncertainty about the | |
58 | # mappings in the range C6A1 - C8FE, and F9DD - F9FE. The ETEN | |
59 | # version of BIG5 organizes the former range differently, and adds | |
60 | # additional characters in the latter range. The correct mappings | |
61 | # these ranges need to be determined. | |
62 | # | |
63 | # 2. There is an uncertainty in the mapping of the Big Five character | |
64 | # 0xA3BC. This character occurs within the Big Five block of tone marks | |
65 | # for bopomofo and is intended to be the tone mark for the first tone in | |
66 | # Mandarin Chinese. We have selected the mapping U+02C9 MODIFIER LETTER | |
67 | # MACRON (Mandarin Chinese first tone) to reflect this semantic. | |
68 | # However, because bopomofo uses the absense of a tone mark to indicate | |
69 | # the first Mandarin tone, most implementations of Big Five represent | |
70 | # this character with a blank space, and so a mapping such as U+2003 EM SPACE | |
71 | # might be preferred. | |
72 | # | |
73 | # | |
74 | # | |
75 | # Any comments or problems, contact <John_Jenkins@taligent.com> | |
76 | 11 | |
77 | 12 | * The contents of this file are subject to the Interbase Public |
78 | 13 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from file maps/WINDOWS/CP1251.TXT |
4 | 4 | |
5 | # | |
6 | 5 | # Name: cp1251 to Unicode table |
7 | 6 | # Unicode version: 2.0 |
8 | 7 | # Table version: 2.00 |
9 | 8 | # Table format: Format A |
10 | 9 | # Date: 04/15/98 |
11 | # | |
12 | # Contact: cpxlate@microsoft.com | |
13 | # | |
14 | # General notes: none | |
15 | # | |
16 | # Format: Three tab-separated columns | |
17 | # Column #1 is the cp1251 code (in hex) | |
18 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
19 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
20 | # | |
21 | # The entries are in cp1251 order | |
22 | # | |
23 | 0x00 0x0000 #NULL | |
24 | 0x01 0x0001 #START OF HEADING | |
25 | 0x02 0x0002 #START OF TEXT | |
26 | 0x03 0x0003 #END OF TEXT | |
27 | 0x04 0x0004 #END OF TRANSMISSION | |
28 | 0x05 0x0005 #ENQUIRY | |
29 | 0x06 0x0006 #ACKNOWLEDGE | |
30 | 0x07 0x0007 #BELL | |
31 | 0x08 0x0008 #BACKSPACE | |
32 | 0x09 0x0009 #HORIZONTAL TABULATION | |
33 | 0x0A 0x000A #LINE FEED | |
34 | 0x0B 0x000B #VERTICAL TABULATION | |
35 | 0x0C 0x000C #FORM FEED | |
36 | 0x0D 0x000D #CARRIAGE RETURN | |
37 | 0x0E 0x000E #SHIFT OUT | |
38 | 0x0F 0x000F #SHIFT IN | |
39 | 0x10 0x0010 #DATA LINK ESCAPE | |
40 | 0x11 0x0011 #DEVICE CONTROL ONE | |
41 | 0x12 0x0012 #DEVICE CONTROL TWO | |
42 | 0x13 0x0013 #DEVICE CONTROL THREE | |
43 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
44 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
45 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
46 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
47 | 0x18 0x0018 #CANCEL | |
48 | 0x19 0x0019 #END OF MEDIUM | |
49 | 0x1A 0x001A #SUBSTITUTE | |
50 | 0x1B 0x001B #ESCAPE | |
51 | 0x1C 0x001C #FILE SEPARATOR | |
52 | 0x1D 0x001D #GROUP SEPARATOR | |
53 | 0x1E 0x001E #RECORD SEPARATOR | |
54 | 0x1F 0x001F #UNIT SEPARATOR | |
55 | 0x20 0x0020 #SPACE | |
56 | 0x21 0x0021 #EXCLAMATION MARK | |
57 | 0x22 0x0022 #QUOTATION MARK | |
58 | 0x23 0x0023 #NUMBER SIGN | |
59 | 0x24 0x0024 #DOLLAR SIGN | |
60 | 0x25 0x0025 #PERCENT SIGN | |
61 | 0x26 0x0026 #AMPERSAND | |
62 | 0x27 0x0027 #APOSTROPHE | |
63 | 0x28 0x0028 #LEFT PARENTHESIS | |
64 | 0x29 0x0029 #RIGHT PARENTHESIS | |
65 | 0x2A 0x002A #ASTERISK | |
66 | 0x2B 0x002B #PLUS SIGN | |
67 | 0x2C 0x002C #COMMA | |
68 | 0x2D 0x002D #HYPHEN-MINUS | |
69 | 0x2E 0x002E #FULL STOP | |
70 | 0x2F 0x002F #SOLIDUS | |
71 | 0x30 0x0030 #DIGIT ZERO | |
72 | 0x31 0x0031 #DIGIT ONE | |
73 | 0x32 0x0032 #DIGIT TWO | |
74 | 0x33 0x0033 #DIGIT THREE | |
75 | 0x34 0x0034 #DIGIT FOUR | |
76 | 0x35 0x0035 #DIGIT FIVE | |
77 | 0x36 0x0036 #DIGIT SIX | |
78 | 0x37 0x0037 #DIGIT SEVEN | |
79 | 0x38 0x0038 #DIGIT EIGHT | |
80 | 0x39 0x0039 #DIGIT NINE | |
81 | 0x3A 0x003A #COLON | |
82 | 0x3B 0x003B #SEMICOLON | |
83 | 0x3C 0x003C #LESS-THAN SIGN | |
84 | 0x3D 0x003D #EQUALS SIGN | |
85 | 0x3E 0x003E #GREATER-THAN SIGN | |
86 | 0x3F 0x003F #QUESTION MARK | |
87 | 0x40 0x0040 #COMMERCIAL AT | |
88 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
89 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
90 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
91 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
92 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
93 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
94 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
95 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
96 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
97 | 0x4A 0x004A #LATIN CAPITAL LETTER J | |
98 | 0x4B 0x004B #LATIN CAPITAL LETTER K | |
99 | 0x4C 0x004C #LATIN CAPITAL LETTER L | |
100 | 0x4D 0x004D #LATIN CAPITAL LETTER M | |
101 | 0x4E 0x004E #LATIN CAPITAL LETTER N | |
102 | 0x4F 0x004F #LATIN CAPITAL LETTER O | |
103 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
104 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
105 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
106 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
107 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
108 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
109 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
110 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
111 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
112 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
113 | 0x5A 0x005A #LATIN CAPITAL LETTER Z | |
114 | 0x5B 0x005B #LEFT SQUARE BRACKET | |
115 | 0x5C 0x005C #REVERSE SOLIDUS | |
116 | 0x5D 0x005D #RIGHT SQUARE BRACKET | |
117 | 0x5E 0x005E #CIRCUMFLEX ACCENT | |
118 | 0x5F 0x005F #LOW LINE | |
119 | 0x60 0x0060 #GRAVE ACCENT | |
120 | 0x61 0x0061 #LATIN SMALL LETTER A | |
121 | 0x62 0x0062 #LATIN SMALL LETTER B | |
122 | 0x63 0x0063 #LATIN SMALL LETTER C | |
123 | 0x64 0x0064 #LATIN SMALL LETTER D | |
124 | 0x65 0x0065 #LATIN SMALL LETTER E | |
125 | 0x66 0x0066 #LATIN SMALL LETTER F | |
126 | 0x67 0x0067 #LATIN SMALL LETTER G | |
127 | 0x68 0x0068 #LATIN SMALL LETTER H | |
128 | 0x69 0x0069 #LATIN SMALL LETTER I | |
129 | 0x6A 0x006A #LATIN SMALL LETTER J | |
130 | 0x6B 0x006B #LATIN SMALL LETTER K | |
131 | 0x6C 0x006C #LATIN SMALL LETTER L | |
132 | 0x6D 0x006D #LATIN SMALL LETTER M | |
133 | 0x6E 0x006E #LATIN SMALL LETTER N | |
134 | 0x6F 0x006F #LATIN SMALL LETTER O | |
135 | 0x70 0x0070 #LATIN SMALL LETTER P | |
136 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
137 | 0x72 0x0072 #LATIN SMALL LETTER R | |
138 | 0x73 0x0073 #LATIN SMALL LETTER S | |
139 | 0x74 0x0074 #LATIN SMALL LETTER T | |
140 | 0x75 0x0075 #LATIN SMALL LETTER U | |
141 | 0x76 0x0076 #LATIN SMALL LETTER V | |
142 | 0x77 0x0077 #LATIN SMALL LETTER W | |
143 | 0x78 0x0078 #LATIN SMALL LETTER X | |
144 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
145 | 0x7A 0x007A #LATIN SMALL LETTER Z | |
146 | 0x7B 0x007B #LEFT CURLY BRACKET | |
147 | 0x7C 0x007C #VERTICAL LINE | |
148 | 0x7D 0x007D #RIGHT CURLY BRACKET | |
149 | 0x7E 0x007E #TILDE | |
150 | 0x7F 0x007F #DELETE | |
151 | 0x80 0x0402 #CYRILLIC CAPITAL LETTER DJE | |
152 | 0x81 0x0403 #CYRILLIC CAPITAL LETTER GJE | |
153 | 0x82 0x201A #SINGLE LOW-9 QUOTATION MARK | |
154 | 0x83 0x0453 #CYRILLIC SMALL LETTER GJE | |
155 | 0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK | |
156 | 0x85 0x2026 #HORIZONTAL ELLIPSIS | |
157 | 0x86 0x2020 #DAGGER | |
158 | 0x87 0x2021 #DOUBLE DAGGER | |
159 | 0x88 0x20AC #EURO SIGN | |
160 | 0x89 0x2030 #PER MILLE SIGN | |
161 | 0x8A 0x0409 #CYRILLIC CAPITAL LETTER LJE | |
162 | 0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK | |
163 | 0x8C 0x040A #CYRILLIC CAPITAL LETTER NJE | |
164 | 0x8D 0x040C #CYRILLIC CAPITAL LETTER KJE | |
165 | 0x8E 0x040B #CYRILLIC CAPITAL LETTER TSHE | |
166 | 0x8F 0x040F #CYRILLIC CAPITAL LETTER DZHE | |
167 | 0x90 0x0452 #CYRILLIC SMALL LETTER DJE | |
168 | 0x91 0x2018 #LEFT SINGLE QUOTATION MARK | |
169 | 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK | |
170 | 0x93 0x201C #LEFT DOUBLE QUOTATION MARK | |
171 | 0x94 0x201D #RIGHT DOUBLE QUOTATION MARK | |
172 | 0x95 0x2022 #BULLET | |
173 | 0x96 0x2013 #EN DASH | |
174 | 0x97 0x2014 #EM DASH | |
175 | 0x98 #UNDEFINED | |
176 | 0x99 0x2122 #TRADE MARK SIGN | |
177 | 0x9A 0x0459 #CYRILLIC SMALL LETTER LJE | |
178 | 0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK | |
179 | 0x9C 0x045A #CYRILLIC SMALL LETTER NJE | |
180 | 0x9D 0x045C #CYRILLIC SMALL LETTER KJE | |
181 | 0x9E 0x045B #CYRILLIC SMALL LETTER TSHE | |
182 | 0x9F 0x045F #CYRILLIC SMALL LETTER DZHE | |
183 | 0xA0 0x00A0 #NO-BREAK SPACE | |
184 | 0xA1 0x040E #CYRILLIC CAPITAL LETTER SHORT U | |
185 | 0xA2 0x045E #CYRILLIC SMALL LETTER SHORT U | |
186 | 0xA3 0x0408 #CYRILLIC CAPITAL LETTER JE | |
187 | 0xA4 0x00A4 #CURRENCY SIGN | |
188 | 0xA5 0x0490 #CYRILLIC CAPITAL LETTER GHE WITH UPTURN | |
189 | 0xA6 0x00A6 #BROKEN BAR | |
190 | 0xA7 0x00A7 #SECTION SIGN | |
191 | 0xA8 0x0401 #CYRILLIC CAPITAL LETTER IO | |
192 | 0xA9 0x00A9 #COPYRIGHT SIGN | |
193 | 0xAA 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE | |
194 | 0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
195 | 0xAC 0x00AC #NOT SIGN | |
196 | 0xAD 0x00AD #SOFT HYPHEN | |
197 | 0xAE 0x00AE #REGISTERED SIGN | |
198 | 0xAF 0x0407 #CYRILLIC CAPITAL LETTER YI | |
199 | 0xB0 0x00B0 #DEGREE SIGN | |
200 | 0xB1 0x00B1 #PLUS-MINUS SIGN | |
201 | 0xB2 0x0406 #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I | |
202 | 0xB3 0x0456 #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I | |
203 | 0xB4 0x0491 #CYRILLIC SMALL LETTER GHE WITH UPTURN | |
204 | 0xB5 0x00B5 #MICRO SIGN | |
205 | 0xB6 0x00B6 #PILCROW SIGN | |
206 | 0xB7 0x00B7 #MIDDLE DOT | |
207 | 0xB8 0x0451 #CYRILLIC SMALL LETTER IO | |
208 | 0xB9 0x2116 #NUMERO SIGN | |
209 | 0xBA 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE | |
210 | 0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
211 | 0xBC 0x0458 #CYRILLIC SMALL LETTER JE | |
212 | 0xBD 0x0405 #CYRILLIC CAPITAL LETTER DZE | |
213 | 0xBE 0x0455 #CYRILLIC SMALL LETTER DZE | |
214 | 0xBF 0x0457 #CYRILLIC SMALL LETTER YI | |
215 | 0xC0 0x0410 #CYRILLIC CAPITAL LETTER A | |
216 | 0xC1 0x0411 #CYRILLIC CAPITAL LETTER BE | |
217 | 0xC2 0x0412 #CYRILLIC CAPITAL LETTER VE | |
218 | 0xC3 0x0413 #CYRILLIC CAPITAL LETTER GHE | |
219 | 0xC4 0x0414 #CYRILLIC CAPITAL LETTER DE | |
220 | 0xC5 0x0415 #CYRILLIC CAPITAL LETTER IE | |
221 | 0xC6 0x0416 #CYRILLIC CAPITAL LETTER ZHE | |
222 | 0xC7 0x0417 #CYRILLIC CAPITAL LETTER ZE | |
223 | 0xC8 0x0418 #CYRILLIC CAPITAL LETTER I | |
224 | 0xC9 0x0419 #CYRILLIC CAPITAL LETTER SHORT I | |
225 | 0xCA 0x041A #CYRILLIC CAPITAL LETTER KA | |
226 | 0xCB 0x041B #CYRILLIC CAPITAL LETTER EL | |
227 | 0xCC 0x041C #CYRILLIC CAPITAL LETTER EM | |
228 | 0xCD 0x041D #CYRILLIC CAPITAL LETTER EN | |
229 | 0xCE 0x041E #CYRILLIC CAPITAL LETTER O | |
230 | 0xCF 0x041F #CYRILLIC CAPITAL LETTER PE | |
231 | 0xD0 0x0420 #CYRILLIC CAPITAL LETTER ER | |
232 | 0xD1 0x0421 #CYRILLIC CAPITAL LETTER ES | |
233 | 0xD2 0x0422 #CYRILLIC CAPITAL LETTER TE | |
234 | 0xD3 0x0423 #CYRILLIC CAPITAL LETTER U | |
235 | 0xD4 0x0424 #CYRILLIC CAPITAL LETTER EF | |
236 | 0xD5 0x0425 #CYRILLIC CAPITAL LETTER HA | |
237 | 0xD6 0x0426 #CYRILLIC CAPITAL LETTER TSE | |
238 | 0xD7 0x0427 #CYRILLIC CAPITAL LETTER CHE | |
239 | 0xD8 0x0428 #CYRILLIC CAPITAL LETTER SHA | |
240 | 0xD9 0x0429 #CYRILLIC CAPITAL LETTER SHCHA | |
241 | 0xDA 0x042A #CYRILLIC CAPITAL LETTER HARD SIGN | |
242 | 0xDB 0x042B #CYRILLIC CAPITAL LETTER YERU | |
243 | 0xDC 0x042C #CYRILLIC CAPITAL LETTER SOFT SIGN | |
244 | 0xDD 0x042D #CYRILLIC CAPITAL LETTER E | |
245 | 0xDE 0x042E #CYRILLIC CAPITAL LETTER YU | |
246 | 0xDF 0x042F #CYRILLIC CAPITAL LETTER YA | |
247 | 0xE0 0x0430 #CYRILLIC SMALL LETTER A | |
248 | 0xE1 0x0431 #CYRILLIC SMALL LETTER BE | |
249 | 0xE2 0x0432 #CYRILLIC SMALL LETTER VE | |
250 | 0xE3 0x0433 #CYRILLIC SMALL LETTER GHE | |
251 | 0xE4 0x0434 #CYRILLIC SMALL LETTER DE | |
252 | 0xE5 0x0435 #CYRILLIC SMALL LETTER IE | |
253 | 0xE6 0x0436 #CYRILLIC SMALL LETTER ZHE | |
254 | 0xE7 0x0437 #CYRILLIC SMALL LETTER ZE | |
255 | 0xE8 0x0438 #CYRILLIC SMALL LETTER I | |
256 | 0xE9 0x0439 #CYRILLIC SMALL LETTER SHORT I | |
257 | 0xEA 0x043A #CYRILLIC SMALL LETTER KA | |
258 | 0xEB 0x043B #CYRILLIC SMALL LETTER EL | |
259 | 0xEC 0x043C #CYRILLIC SMALL LETTER EM | |
260 | 0xED 0x043D #CYRILLIC SMALL LETTER EN | |
261 | 0xEE 0x043E #CYRILLIC SMALL LETTER O | |
262 | 0xEF 0x043F #CYRILLIC SMALL LETTER PE | |
263 | 0xF0 0x0440 #CYRILLIC SMALL LETTER ER | |
264 | 0xF1 0x0441 #CYRILLIC SMALL LETTER ES | |
265 | 0xF2 0x0442 #CYRILLIC SMALL LETTER TE | |
266 | 0xF3 0x0443 #CYRILLIC SMALL LETTER U | |
267 | 0xF4 0x0444 #CYRILLIC SMALL LETTER EF | |
268 | 0xF5 0x0445 #CYRILLIC SMALL LETTER HA | |
269 | 0xF6 0x0446 #CYRILLIC SMALL LETTER TSE | |
270 | 0xF7 0x0447 #CYRILLIC SMALL LETTER CHE | |
271 | 0xF8 0x0448 #CYRILLIC SMALL LETTER SHA | |
272 | 0xF9 0x0449 #CYRILLIC SMALL LETTER SHCHA | |
273 | 0xFA 0x044A #CYRILLIC SMALL LETTER HARD SIGN | |
274 | 0xFB 0x044B #CYRILLIC SMALL LETTER YERU | |
275 | 0xFC 0x044C #CYRILLIC SMALL LETTER SOFT SIGN | |
276 | 0xFD 0x044D #CYRILLIC SMALL LETTER E | |
277 | 0xFE 0x044E #CYRILLIC SMALL LETTER YU | |
278 | 0xFF 0x044F #CYRILLIC SMALL LETTER YA | |
10 | ||
279 | 11 | * The contents of this file are subject to the Interbase Public |
280 | 12 | * License Version 1.0 (the "License"); you may not use this file |
281 | 13 | * except in compliance with the License. You may obtain a copy |
3 | 3 | |
4 | 4 | Unicode mapping table generated from file gb2312-2.txt |
5 | 5 | |
6 | # | |
7 | 6 | # Name: GB2312-80 to Unicode table (complete, hex format) |
8 | 7 | # Unicode version: 3.0 |
9 | 8 | # Table version: 1.0 |
10 | 9 | # Table format: Format A |
11 | 10 | # Date: 1999 October 8 |
12 | # Author: Ken Whistler <kenw@sybase.com> | |
13 | # Original authors: Glenn Adams, John H. Jenkin <jenkins@apple.com> | |
14 | # | |
15 | # Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved. | |
16 | # | |
17 | # This file is provided as-is by Unicode, Inc. (The Unicode Consortium). | |
18 | # No claims are made as to fitness for any particular purpose. No | |
19 | # warranties of any kind are expressed or implied. The recipient | |
20 | # agrees to determine applicability of information provided. If this | |
21 | # file has been provided on optical media by Unicode, Inc., the sole | |
22 | # remedy for any claim will be exchange of defective media within 90 | |
23 | # days of receipt. | |
24 | # | |
25 | # Unicode, Inc. hereby grants the right to freely use the information | |
26 | # supplied in this file in the creation of products supporting the | |
27 | # Unicode Standard, and to make copies of this file in any form for | |
28 | # internal or external distribution as long as this notice remains | |
29 | # attached. | |
30 | # | |
31 | # General notes: | |
32 | # | |
33 | # This table contains the datathe Unicode Consortium currently has on how | |
34 | # GB2312-80 characters map into Unicode. | |
35 | # | |
36 | # The following algorithms can be used to change the hex form | |
37 | # of GB2312 to other standard forms: | |
38 | # | |
39 | # To change hex to EUC form, add 0x8080 | |
40 | # To change hex to kuten form, first subtract 0x2020. Then | |
41 | # the high and low bytes correspond to the ku and ten of | |
42 | # the kuten form. For example, 0x2121 -> 0x0101 -> 0101; | |
43 | # 0x777E -> 0x575E -> 8794 | |
44 | # | |
45 | # Version history | |
46 | # 1.0 version updates 0.0d2 version by correcting mapping for 0x212C | |
47 | # from U+2225 to U+2016. | |
48 | # | |
49 | # Updated versions of this file may be found in: | |
50 | # <ftp://ftp.unicode.org/Public/MAPPINGS/> | |
51 | # | |
52 | # Any comments or problems, contact <errata@unicode.orgm> | |
53 | # Please note that <errata@unicode.org> is an archival address; | |
54 | # notices will be checked, but do not expect an immediate response. | |
55 | # | |
11 | ||
56 | 12 | * The contents of this file are subject to the Interbase Public |
57 | 13 | * License Version 1.0 (the "License"); you may not use this file |
58 | 14 | * except in compliance with the License. You may obtain a copy |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: ISO8859_1 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the ISO8859_1 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in ISO8859_1 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0080 # | |
145 | 0x81 0x0081 # | |
146 | 0x82 0x0082 #BREAK PERMITTED HERE | |
147 | 0x83 0x0083 #NO BREAK HERE | |
148 | 0x84 0x0084 # | |
149 | 0x85 0x0085 #NEXT LINE (NEL) | |
150 | 0x86 0x0086 #START OF SELECTED AREA | |
151 | 0x87 0x0087 #END OF SELECTED AREA | |
152 | 0x88 0x0088 #CHARACTER TABULATION SET | |
153 | 0x89 0x0089 #CHARACTER TABULATION WITH JUSTIFICATION | |
154 | 0x8a 0x008a #LINE TABULATION SET | |
155 | 0x8b 0x008b #PARTIAL LINE FORWARD | |
156 | 0x8c 0x008c #PARTIAL LINE BACKWARD | |
157 | 0x8d 0x008d #REVERSE LINE FEED | |
158 | 0x8e 0x008e #SINGLE SHIFT TWO | |
159 | 0x8f 0x008f #SINGLE SHIFT THREE | |
160 | 0x90 0x0090 #DEVICE CONTROL STRING | |
161 | 0x91 0x0091 #PRIVATE USE ONE | |
162 | 0x92 0x0092 #PRIVATE USE TWO | |
163 | 0x93 0x0093 #SET TRANSMIT STATE | |
164 | 0x94 0x0094 #CANCEL CHARACTER | |
165 | 0x95 0x0095 #MESSAGE WAITING | |
166 | 0x96 0x0096 #START OF GUARDED AREA | |
167 | 0x97 0x0097 #END OF GUARDED AREA | |
168 | 0x98 0x0098 #START OF STRING | |
169 | 0x99 0x0099 # | |
170 | 0x9a 0x009a #SINGLE CHARACTER INTRODUCER | |
171 | 0x9b 0x009b #CONTROL SEQUENCE INTRODUCER | |
172 | 0x9c 0x009c #STRING TERMINATOR | |
173 | 0x9d 0x009d #OPERATING SYSTEM COMMAND | |
174 | 0x9e 0x009e #PRIVACY MESSAGE | |
175 | 0x9f 0x009f #APPLICATION PROGRAM COMMAND | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x00a1 #INVERTED EXCLAMATION MARK | |
178 | 0xa2 0x00a2 #CENT SIGN | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x00a5 #YEN SIGN | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa 0x00aa #FEMININE ORDINAL INDICATOR | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x00af #MACRON | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x00b8 #CEDILLA | |
201 | 0xb9 0x00b9 #SUPERSCRIPT ONE | |
202 | 0xba 0x00ba #MASCULINE ORDINAL INDICATOR | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x00bc #VULGAR FRACTION ONE QUARTER | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe 0x00be #VULGAR FRACTION THREE QUARTERS | |
207 | 0xbf 0x00bf #INVERTED QUESTION MARK | |
208 | 0xc0 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE | |
209 | 0xc1 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
210 | 0xc2 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
211 | 0xc3 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE | |
212 | 0xc4 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
213 | 0xc5 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
214 | 0xc6 0x00c6 #LATIN CAPITAL LETTER AE | |
215 | 0xc7 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
216 | 0xc8 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE | |
217 | 0xc9 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
218 | 0xca 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
219 | 0xcb 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
220 | 0xcc 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE | |
221 | 0xcd 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
222 | 0xce 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
223 | 0xcf 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS | |
224 | 0xd0 0x00d0 #LATIN CAPITAL LETTER ETH | |
225 | 0xd1 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
226 | 0xd2 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE | |
227 | 0xd3 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
228 | 0xd4 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
229 | 0xd5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
230 | 0xd6 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
231 | 0xd7 0x00d7 #MULTIPLICATION SIGN | |
232 | 0xd8 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
233 | 0xd9 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE | |
234 | 0xda 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
235 | 0xdb 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
236 | 0xdc 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
237 | 0xdd 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE | |
238 | 0xde 0x00de #LATIN CAPITAL LETTER THORN | |
239 | 0xdf 0x00df #LATIN SMALL LETTER SHARP S | |
240 | 0xe0 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
241 | 0xe1 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
242 | 0xe2 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
243 | 0xe3 0x00e3 #LATIN SMALL LETTER A WITH TILDE | |
244 | 0xe4 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
245 | 0xe5 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
246 | 0xe6 0x00e6 #LATIN SMALL LETTER AE | |
247 | 0xe7 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
248 | 0xe8 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
249 | 0xe9 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
250 | 0xea 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
251 | 0xeb 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
252 | 0xec 0x00ec #LATIN SMALL LETTER I WITH GRAVE | |
253 | 0xed 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
254 | 0xee 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
255 | 0xef 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
256 | 0xf0 0x00f0 #LATIN SMALL LETTER ETH | |
257 | 0xf1 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
258 | 0xf2 0x00f2 #LATIN SMALL LETTER O WITH GRAVE | |
259 | 0xf3 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
260 | 0xf4 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
261 | 0xf5 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
262 | 0xf6 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
263 | 0xf7 0x00f7 #DIVISION SIGN | |
264 | 0xf8 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
265 | 0xf9 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
266 | 0xfa 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
267 | 0xfb 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
268 | 0xfc 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
269 | 0xfd 0x00fd #LATIN SMALL LETTER Y WITH ACUTE | |
270 | 0xfe 0x00fe #LATIN SMALL LETTER THORN | |
271 | 0xff 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: ISO8859_13 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the ISO8859_13 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in ISO8859_13 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0080 # | |
145 | 0x81 0x0081 # | |
146 | 0x82 0x0082 #BREAK PERMITTED HERE | |
147 | 0x83 0x0083 #NO BREAK HERE | |
148 | 0x84 0x0084 # | |
149 | 0x85 0x0085 #NEXT LINE (NEL) | |
150 | 0x86 0x0086 #START OF SELECTED AREA | |
151 | 0x87 0x0087 #END OF SELECTED AREA | |
152 | 0x88 0x0088 #CHARACTER TABULATION SET | |
153 | 0x89 0x0089 #CHARACTER TABULATION WITH JUSTIFICATION | |
154 | 0x8a 0x008a #LINE TABULATION SET | |
155 | 0x8b 0x008b #PARTIAL LINE FORWARD | |
156 | 0x8c 0x008c #PARTIAL LINE BACKWARD | |
157 | 0x8d 0x008d #REVERSE LINE FEED | |
158 | 0x8e 0x008e #SINGLE SHIFT TWO | |
159 | 0x8f 0x008f #SINGLE SHIFT THREE | |
160 | 0x90 0x0090 #DEVICE CONTROL STRING | |
161 | 0x91 0x0091 #PRIVATE USE ONE | |
162 | 0x92 0x0092 #PRIVATE USE TWO | |
163 | 0x93 0x0093 #SET TRANSMIT STATE | |
164 | 0x94 0x0094 #CANCEL CHARACTER | |
165 | 0x95 0x0095 #MESSAGE WAITING | |
166 | 0x96 0x0096 #START OF GUARDED AREA | |
167 | 0x97 0x0097 #END OF GUARDED AREA | |
168 | 0x98 0x0098 #START OF STRING | |
169 | 0x99 0x0099 # | |
170 | 0x9a 0x009a #SINGLE CHARACTER INTRODUCER | |
171 | 0x9b 0x009b #CONTROL SEQUENCE INTRODUCER | |
172 | 0x9c 0x009c #STRING TERMINATOR | |
173 | 0x9d 0x009d #OPERATING SYSTEM COMMAND | |
174 | 0x9e 0x009e #PRIVACY MESSAGE | |
175 | 0x9f 0x009f #APPLICATION PROGRAM COMMAND | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x201d #RIGHT DOUBLE QUOTATION MARK | |
178 | 0xa2 0x00a2 #CENT SIGN | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x201e #DOUBLE LOW-9 QUOTATION MARK | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa 0x0156 #LATIN CAPITAL LETTER R WITH CEDILLA | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x00c6 #LATIN CAPITAL LETTER AE | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x201c #LEFT DOUBLE QUOTATION MARK | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
201 | 0xb9 0x00b9 #SUPERSCRIPT ONE | |
202 | 0xba 0x0157 #LATIN SMALL LETTER R WITH CEDILLA | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x00bc #VULGAR FRACTION ONE QUARTER | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe 0x00be #VULGAR FRACTION THREE QUARTERS | |
207 | 0xbf 0x00e6 #LATIN SMALL LETTER AE | |
208 | 0xc0 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK | |
209 | 0xc1 0x012e #LATIN CAPITAL LETTER I WITH OGONEK | |
210 | 0xc2 0x0100 #LATIN CAPITAL LETTER A WITH MACRON | |
211 | 0xc3 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE | |
212 | 0xc4 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
213 | 0xc5 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
214 | 0xc6 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK | |
215 | 0xc7 0x0112 #LATIN CAPITAL LETTER E WITH MACRON | |
216 | 0xc8 0x010c #LATIN CAPITAL LETTER C WITH CARON | |
217 | 0xc9 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
218 | 0xca 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE | |
219 | 0xcb 0x0116 #LATIN CAPITAL LETTER E WITH DOT ABOVE | |
220 | 0xcc 0x0122 #LATIN CAPITAL LETTER G WITH CEDILLA | |
221 | 0xcd 0x0136 #LATIN CAPITAL LETTER K WITH CEDILLA | |
222 | 0xce 0x012a #LATIN CAPITAL LETTER I WITH MACRON | |
223 | 0xcf 0x013b #LATIN CAPITAL LETTER L WITH CEDILLA | |
224 | 0xd0 0x0160 #LATIN CAPITAL LETTER S WITH CARON | |
225 | 0xd1 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE | |
226 | 0xd2 0x0145 #LATIN CAPITAL LETTER N WITH CEDILLA | |
227 | 0xd3 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
228 | 0xd4 0x014c #LATIN CAPITAL LETTER O WITH MACRON | |
229 | 0xd5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
230 | 0xd6 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
231 | 0xd7 0x00d7 #MULTIPLICATION SIGN | |
232 | 0xd8 0x0172 #LATIN CAPITAL LETTER U WITH OGONEK | |
233 | 0xd9 0x0141 #LATIN CAPITAL LETTER L WITH STROKE | |
234 | 0xda 0x015a #LATIN CAPITAL LETTER S WITH ACUTE | |
235 | 0xdb 0x016a #LATIN CAPITAL LETTER U WITH MACRON | |
236 | 0xdc 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
237 | 0xdd 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE | |
238 | 0xde 0x017d #LATIN CAPITAL LETTER Z WITH CARON | |
239 | 0xdf 0x00df #LATIN SMALL LETTER SHARP S | |
240 | 0xe0 0x0105 #LATIN SMALL LETTER A WITH OGONEK | |
241 | 0xe1 0x012f #LATIN SMALL LETTER I WITH OGONEK | |
242 | 0xe2 0x0101 #LATIN SMALL LETTER A WITH MACRON | |
243 | 0xe3 0x0107 #LATIN SMALL LETTER C WITH ACUTE | |
244 | 0xe4 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
245 | 0xe5 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
246 | 0xe6 0x0119 #LATIN SMALL LETTER E WITH OGONEK | |
247 | 0xe7 0x0113 #LATIN SMALL LETTER E WITH MACRON | |
248 | 0xe8 0x010d #LATIN SMALL LETTER C WITH CARON | |
249 | 0xe9 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
250 | 0xea 0x017a #LATIN SMALL LETTER Z WITH ACUTE | |
251 | 0xeb 0x0117 #LATIN SMALL LETTER E WITH DOT ABOVE | |
252 | 0xec 0x0123 #LATIN SMALL LETTER G WITH CEDILLA | |
253 | 0xed 0x0137 #LATIN SMALL LETTER K WITH CEDILLA | |
254 | 0xee 0x012b #LATIN SMALL LETTER I WITH MACRON | |
255 | 0xef 0x013c #LATIN SMALL LETTER L WITH CEDILLA | |
256 | 0xf0 0x0161 #LATIN SMALL LETTER S WITH CARON | |
257 | 0xf1 0x0144 #LATIN SMALL LETTER N WITH ACUTE | |
258 | 0xf2 0x0146 #LATIN SMALL LETTER N WITH CEDILLA | |
259 | 0xf3 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
260 | 0xf4 0x014d #LATIN SMALL LETTER O WITH MACRON | |
261 | 0xf5 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
262 | 0xf6 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
263 | 0xf7 0x00f7 #DIVISION SIGN | |
264 | 0xf8 0x0173 #LATIN SMALL LETTER U WITH OGONEK | |
265 | 0xf9 0x0142 #LATIN SMALL LETTER L WITH STROKE | |
266 | 0xfa 0x015b #LATIN SMALL LETTER S WITH ACUTE | |
267 | 0xfb 0x016b #LATIN SMALL LETTER U WITH MACRON | |
268 | 0xfc 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
269 | 0xfd 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE | |
270 | 0xfe 0x017e #LATIN SMALL LETTER Z WITH CARON | |
271 | 0xff 0x2019 #RIGHT SINGLE QUOTATION MARK | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: ISO8859_2 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the ISO8859_2 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in ISO8859_2 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0080 # | |
145 | 0x81 0x0081 # | |
146 | 0x82 0x0082 #BREAK PERMITTED HERE | |
147 | 0x83 0x0083 #NO BREAK HERE | |
148 | 0x84 0x0084 # | |
149 | 0x85 0x0085 #NEXT LINE (NEL) | |
150 | 0x86 0x0086 #START OF SELECTED AREA | |
151 | 0x87 0x0087 #END OF SELECTED AREA | |
152 | 0x88 0x0088 #CHARACTER TABULATION SET | |
153 | 0x89 0x0089 #CHARACTER TABULATION WITH JUSTIFICATION | |
154 | 0x8a 0x008a #LINE TABULATION SET | |
155 | 0x8b 0x008b #PARTIAL LINE FORWARD | |
156 | 0x8c 0x008c #PARTIAL LINE BACKWARD | |
157 | 0x8d 0x008d #REVERSE LINE FEED | |
158 | 0x8e 0x008e #SINGLE SHIFT TWO | |
159 | 0x8f 0x008f #SINGLE SHIFT THREE | |
160 | 0x90 0x0090 #DEVICE CONTROL STRING | |
161 | 0x91 0x0091 #PRIVATE USE ONE | |
162 | 0x92 0x0092 #PRIVATE USE TWO | |
163 | 0x93 0x0093 #SET TRANSMIT STATE | |
164 | 0x94 0x0094 #CANCEL CHARACTER | |
165 | 0x95 0x0095 #MESSAGE WAITING | |
166 | 0x96 0x0096 #START OF GUARDED AREA | |
167 | 0x97 0x0097 #END OF GUARDED AREA | |
168 | 0x98 0x0098 #START OF STRING | |
169 | 0x99 0x0099 # | |
170 | 0x9a 0x009a #SINGLE CHARACTER INTRODUCER | |
171 | 0x9b 0x009b #CONTROL SEQUENCE INTRODUCER | |
172 | 0x9c 0x009c #STRING TERMINATOR | |
173 | 0x9d 0x009d #OPERATING SYSTEM COMMAND | |
174 | 0x9e 0x009e #PRIVACY MESSAGE | |
175 | 0x9f 0x009f #APPLICATION PROGRAM COMMAND | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK | |
178 | 0xa2 0x02d8 #BREVE | |
179 | 0xa3 0x0141 #LATIN CAPITAL LETTER L WITH STROKE | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x013d #LATIN CAPITAL LETTER L WITH CARON | |
182 | 0xa6 0x015a #LATIN CAPITAL LETTER S WITH ACUTE | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x0160 #LATIN CAPITAL LETTER S WITH CARON | |
186 | 0xaa 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA | |
187 | 0xab 0x0164 #LATIN CAPITAL LETTER T WITH CARON | |
188 | 0xac 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x017d #LATIN CAPITAL LETTER Z WITH CARON | |
191 | 0xaf 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x0105 #LATIN SMALL LETTER A WITH OGONEK | |
194 | 0xb2 0x02db #OGONEK | |
195 | 0xb3 0x0142 #LATIN SMALL LETTER L WITH STROKE | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x013e #LATIN SMALL LETTER L WITH CARON | |
198 | 0xb6 0x015b #LATIN SMALL LETTER S WITH ACUTE | |
199 | 0xb7 0x02c7 #CARON | |
200 | 0xb8 0x00b8 #CEDILLA | |
201 | 0xb9 0x0161 #LATIN SMALL LETTER S WITH CARON | |
202 | 0xba 0x015f #LATIN SMALL LETTER S WITH CEDILLA | |
203 | 0xbb 0x0165 #LATIN SMALL LETTER T WITH CARON | |
204 | 0xbc 0x017a #LATIN SMALL LETTER Z WITH ACUTE | |
205 | 0xbd 0x02dd #DOUBLE ACUTE ACCENT | |
206 | 0xbe 0x017e #LATIN SMALL LETTER Z WITH CARON | |
207 | 0xbf 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE | |
208 | 0xc0 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE | |
209 | 0xc1 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
210 | 0xc2 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
211 | 0xc3 0x0102 #LATIN CAPITAL LETTER A WITH BREVE | |
212 | 0xc4 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
213 | 0xc5 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE | |
214 | 0xc6 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE | |
215 | 0xc7 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
216 | 0xc8 0x010c #LATIN CAPITAL LETTER C WITH CARON | |
217 | 0xc9 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
218 | 0xca 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK | |
219 | 0xcb 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
220 | 0xcc 0x011a #LATIN CAPITAL LETTER E WITH CARON | |
221 | 0xcd 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
222 | 0xce 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
223 | 0xcf 0x010e #LATIN CAPITAL LETTER D WITH CARON | |
224 | 0xd0 0x0110 #LATIN CAPITAL LETTER D WITH STROKE | |
225 | 0xd1 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE | |
226 | 0xd2 0x0147 #LATIN CAPITAL LETTER N WITH CARON | |
227 | 0xd3 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
228 | 0xd4 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
229 | 0xd5 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE | |
230 | 0xd6 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
231 | 0xd7 0x00d7 #MULTIPLICATION SIGN | |
232 | 0xd8 0x0158 #LATIN CAPITAL LETTER R WITH CARON | |
233 | 0xd9 0x016e #LATIN CAPITAL LETTER U WITH RING ABOVE | |
234 | 0xda 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
235 | 0xdb 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE | |
236 | 0xdc 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
237 | 0xdd 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE | |
238 | 0xde 0x0162 #LATIN CAPITAL LETTER T WITH CEDILLA | |
239 | 0xdf 0x00df #LATIN SMALL LETTER SHARP S | |
240 | 0xe0 0x0155 #LATIN SMALL LETTER R WITH ACUTE | |
241 | 0xe1 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
242 | 0xe2 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
243 | 0xe3 0x0103 #LATIN SMALL LETTER A WITH BREVE | |
244 | 0xe4 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
245 | 0xe5 0x013a #LATIN SMALL LETTER L WITH ACUTE | |
246 | 0xe6 0x0107 #LATIN SMALL LETTER C WITH ACUTE | |
247 | 0xe7 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
248 | 0xe8 0x010d #LATIN SMALL LETTER C WITH CARON | |
249 | 0xe9 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
250 | 0xea 0x0119 #LATIN SMALL LETTER E WITH OGONEK | |
251 | 0xeb 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
252 | 0xec 0x011b #LATIN SMALL LETTER E WITH CARON | |
253 | 0xed 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
254 | 0xee 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
255 | 0xef 0x010f #LATIN SMALL LETTER D WITH CARON | |
256 | 0xf0 0x0111 #LATIN SMALL LETTER D WITH STROKE | |
257 | 0xf1 0x0144 #LATIN SMALL LETTER N WITH ACUTE | |
258 | 0xf2 0x0148 #LATIN SMALL LETTER N WITH CARON | |
259 | 0xf3 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
260 | 0xf4 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
261 | 0xf5 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE | |
262 | 0xf6 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
263 | 0xf7 0x00f7 #DIVISION SIGN | |
264 | 0xf8 0x0159 #LATIN SMALL LETTER R WITH CARON | |
265 | 0xf9 0x016f #LATIN SMALL LETTER U WITH RING ABOVE | |
266 | 0xfa 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
267 | 0xfb 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE | |
268 | 0xfc 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
269 | 0xfd 0x00fd #LATIN SMALL LETTER Y WITH ACUTE | |
270 | 0xfe 0x0163 #LATIN SMALL LETTER T WITH CEDILLA | |
271 | 0xff 0x02d9 #DOT ABOVE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: ISO8859_3 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the ISO8859_3 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in ISO8859_3 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0080 # | |
145 | 0x81 0x0081 # | |
146 | 0x82 0x0082 #BREAK PERMITTED HERE | |
147 | 0x83 0x0083 #NO BREAK HERE | |
148 | 0x84 0x0084 # | |
149 | 0x85 0x0085 #NEXT LINE (NEL) | |
150 | 0x86 0x0086 #START OF SELECTED AREA | |
151 | 0x87 0x0087 #END OF SELECTED AREA | |
152 | 0x88 0x0088 #CHARACTER TABULATION SET | |
153 | 0x89 0x0089 #CHARACTER TABULATION WITH JUSTIFICATION | |
154 | 0x8a 0x008a #LINE TABULATION SET | |
155 | 0x8b 0x008b #PARTIAL LINE FORWARD | |
156 | 0x8c 0x008c #PARTIAL LINE BACKWARD | |
157 | 0x8d 0x008d #REVERSE LINE FEED | |
158 | 0x8e 0x008e #SINGLE SHIFT TWO | |
159 | 0x8f 0x008f #SINGLE SHIFT THREE | |
160 | 0x90 0x0090 #DEVICE CONTROL STRING | |
161 | 0x91 0x0091 #PRIVATE USE ONE | |
162 | 0x92 0x0092 #PRIVATE USE TWO | |
163 | 0x93 0x0093 #SET TRANSMIT STATE | |
164 | 0x94 0x0094 #CANCEL CHARACTER | |
165 | 0x95 0x0095 #MESSAGE WAITING | |
166 | 0x96 0x0096 #START OF GUARDED AREA | |
167 | 0x97 0x0097 #END OF GUARDED AREA | |
168 | 0x98 0x0098 #START OF STRING | |
169 | 0x99 0x0099 # | |
170 | 0x9a 0x009a #SINGLE CHARACTER INTRODUCER | |
171 | 0x9b 0x009b #CONTROL SEQUENCE INTRODUCER | |
172 | 0x9c 0x009c #STRING TERMINATOR | |
173 | 0x9d 0x009d #OPERATING SYSTEM COMMAND | |
174 | 0x9e 0x009e #PRIVACY MESSAGE | |
175 | 0x9f 0x009f #APPLICATION PROGRAM COMMAND | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x0126 #LATIN CAPITAL LETTER H WITH STROKE | |
178 | 0xa2 0x02d8 #BREVE | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 #UNDEFINED | |
182 | 0xa6 0x0124 #LATIN CAPITAL LETTER H WITH CIRCUMFLEX | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x0130 #LATIN CAPITAL LETTER I WITH DOT ABOVE | |
186 | 0xaa 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA | |
187 | 0xab 0x011e #LATIN CAPITAL LETTER G WITH BREVE | |
188 | 0xac 0x0134 #LATIN CAPITAL LETTER J WITH CIRCUMFLEX | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae #UNDEFINED | |
191 | 0xaf 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x0127 #LATIN SMALL LETTER H WITH STROKE | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x0125 #LATIN SMALL LETTER H WITH CIRCUMFLEX | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x00b8 #CEDILLA | |
201 | 0xb9 0x0131 #LATIN SMALL LETTER DOTLESS I | |
202 | 0xba 0x015f #LATIN SMALL LETTER S WITH CEDILLA | |
203 | 0xbb 0x011f #LATIN SMALL LETTER G WITH BREVE | |
204 | 0xbc 0x0135 #LATIN SMALL LETTER J WITH CIRCUMFLEX | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe #UNDEFINED | |
207 | 0xbf 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE | |
208 | 0xc0 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE | |
209 | 0xc1 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
210 | 0xc2 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
211 | 0xc3 #UNDEFINED | |
212 | 0xc4 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
213 | 0xc5 0x010a #LATIN CAPITAL LETTER C WITH DOT ABOVE | |
214 | 0xc6 0x0108 #LATIN CAPITAL LETTER C WITH CIRCUMFLEX | |
215 | 0xc7 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
216 | 0xc8 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE | |
217 | 0xc9 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
218 | 0xca 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
219 | 0xcb 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
220 | 0xcc 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE | |
221 | 0xcd 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
222 | 0xce 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
223 | 0xcf 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS | |
224 | 0xd0 #UNDEFINED | |
225 | 0xd1 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
226 | 0xd2 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE | |
227 | 0xd3 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
228 | 0xd4 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
229 | 0xd5 0x0120 #LATIN CAPITAL LETTER G WITH DOT ABOVE | |
230 | 0xd6 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
231 | 0xd7 0x00d7 #MULTIPLICATION SIGN | |
232 | 0xd8 0x011c #LATIN CAPITAL LETTER G WITH CIRCUMFLEX | |
233 | 0xd9 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE | |
234 | 0xda 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
235 | 0xdb 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
236 | 0xdc 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
237 | 0xdd 0x016c #LATIN CAPITAL LETTER U WITH BREVE | |
238 | 0xde 0x015c #LATIN CAPITAL LETTER S WITH CIRCUMFLEX | |
239 | 0xdf 0x00df #LATIN SMALL LETTER SHARP S | |
240 | 0xe0 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
241 | 0xe1 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
242 | 0xe2 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
243 | 0xe3 #UNDEFINED | |
244 | 0xe4 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
245 | 0xe5 0x010b #LATIN SMALL LETTER C WITH DOT ABOVE | |
246 | 0xe6 0x0109 #LATIN SMALL LETTER C WITH CIRCUMFLEX | |
247 | 0xe7 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
248 | 0xe8 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
249 | 0xe9 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
250 | 0xea 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
251 | 0xeb 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
252 | 0xec 0x00ec #LATIN SMALL LETTER I WITH GRAVE | |
253 | 0xed 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
254 | 0xee 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
255 | 0xef 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
256 | 0xf0 #UNDEFINED | |
257 | 0xf1 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
258 | 0xf2 0x00f2 #LATIN SMALL LETTER O WITH GRAVE | |
259 | 0xf3 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
260 | 0xf4 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
261 | 0xf5 0x0121 #LATIN SMALL LETTER G WITH DOT ABOVE | |
262 | 0xf6 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
263 | 0xf7 0x00f7 #DIVISION SIGN | |
264 | 0xf8 0x011d #LATIN SMALL LETTER G WITH CIRCUMFLEX | |
265 | 0xf9 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
266 | 0xfa 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
267 | 0xfb 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
268 | 0xfc 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
269 | 0xfd 0x016d #LATIN SMALL LETTER U WITH BREVE | |
270 | 0xfe 0x015d #LATIN SMALL LETTER S WITH CIRCUMFLEX | |
271 | 0xff 0x02d9 #DOT ABOVE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: ISO8859_4 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the ISO8859_4 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in ISO8859_4 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0080 # | |
145 | 0x81 0x0081 # | |
146 | 0x82 0x0082 #BREAK PERMITTED HERE | |
147 | 0x83 0x0083 #NO BREAK HERE | |
148 | 0x84 0x0084 # | |
149 | 0x85 0x0085 #NEXT LINE (NEL) | |
150 | 0x86 0x0086 #START OF SELECTED AREA | |
151 | 0x87 0x0087 #END OF SELECTED AREA | |
152 | 0x88 0x0088 #CHARACTER TABULATION SET | |
153 | 0x89 0x0089 #CHARACTER TABULATION WITH JUSTIFICATION | |
154 | 0x8a 0x008a #LINE TABULATION SET | |
155 | 0x8b 0x008b #PARTIAL LINE FORWARD | |
156 | 0x8c 0x008c #PARTIAL LINE BACKWARD | |
157 | 0x8d 0x008d #REVERSE LINE FEED | |
158 | 0x8e 0x008e #SINGLE SHIFT TWO | |
159 | 0x8f 0x008f #SINGLE SHIFT THREE | |
160 | 0x90 0x0090 #DEVICE CONTROL STRING | |
161 | 0x91 0x0091 #PRIVATE USE ONE | |
162 | 0x92 0x0092 #PRIVATE USE TWO | |
163 | 0x93 0x0093 #SET TRANSMIT STATE | |
164 | 0x94 0x0094 #CANCEL CHARACTER | |
165 | 0x95 0x0095 #MESSAGE WAITING | |
166 | 0x96 0x0096 #START OF GUARDED AREA | |
167 | 0x97 0x0097 #END OF GUARDED AREA | |
168 | 0x98 0x0098 #START OF STRING | |
169 | 0x99 0x0099 # | |
170 | 0x9a 0x009a #SINGLE CHARACTER INTRODUCER | |
171 | 0x9b 0x009b #CONTROL SEQUENCE INTRODUCER | |
172 | 0x9c 0x009c #STRING TERMINATOR | |
173 | 0x9d 0x009d #OPERATING SYSTEM COMMAND | |
174 | 0x9e 0x009e #PRIVACY MESSAGE | |
175 | 0x9f 0x009f #APPLICATION PROGRAM COMMAND | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK | |
178 | 0xa2 0x0138 #LATIN SMALL LETTER KRA | |
179 | 0xa3 0x0156 #LATIN CAPITAL LETTER R WITH CEDILLA | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x0128 #LATIN CAPITAL LETTER I WITH TILDE | |
182 | 0xa6 0x013b #LATIN CAPITAL LETTER L WITH CEDILLA | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x0160 #LATIN CAPITAL LETTER S WITH CARON | |
186 | 0xaa 0x0112 #LATIN CAPITAL LETTER E WITH MACRON | |
187 | 0xab 0x0122 #LATIN CAPITAL LETTER G WITH CEDILLA | |
188 | 0xac 0x0166 #LATIN CAPITAL LETTER T WITH STROKE | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x017d #LATIN CAPITAL LETTER Z WITH CARON | |
191 | 0xaf 0x00af #MACRON | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x0105 #LATIN SMALL LETTER A WITH OGONEK | |
194 | 0xb2 0x02db #OGONEK | |
195 | 0xb3 0x0157 #LATIN SMALL LETTER R WITH CEDILLA | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x0129 #LATIN SMALL LETTER I WITH TILDE | |
198 | 0xb6 0x013c #LATIN SMALL LETTER L WITH CEDILLA | |
199 | 0xb7 0x02c7 #CARON | |
200 | 0xb8 0x00b8 #CEDILLA | |
201 | 0xb9 0x0161 #LATIN SMALL LETTER S WITH CARON | |
202 | 0xba 0x0113 #LATIN SMALL LETTER E WITH MACRON | |
203 | 0xbb 0x0123 #LATIN SMALL LETTER G WITH CEDILLA | |
204 | 0xbc 0x0167 #LATIN SMALL LETTER T WITH STROKE | |
205 | 0xbd 0x014a #LATIN CAPITAL LETTER ENG | |
206 | 0xbe 0x017e #LATIN SMALL LETTER Z WITH CARON | |
207 | 0xbf 0x014b #LATIN SMALL LETTER ENG | |
208 | 0xc0 0x0100 #LATIN CAPITAL LETTER A WITH MACRON | |
209 | 0xc1 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
210 | 0xc2 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
211 | 0xc3 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE | |
212 | 0xc4 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
213 | 0xc5 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
214 | 0xc6 0x00c6 #LATIN CAPITAL LETTER AE | |
215 | 0xc7 0x012e #LATIN CAPITAL LETTER I WITH OGONEK | |
216 | 0xc8 0x010c #LATIN CAPITAL LETTER C WITH CARON | |
217 | 0xc9 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
218 | 0xca 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK | |
219 | 0xcb 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
220 | 0xcc 0x0116 #LATIN CAPITAL LETTER E WITH DOT ABOVE | |
221 | 0xcd 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
222 | 0xce 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
223 | 0xcf 0x012a #LATIN CAPITAL LETTER I WITH MACRON | |
224 | 0xd0 0x0110 #LATIN CAPITAL LETTER D WITH STROKE | |
225 | 0xd1 0x0145 #LATIN CAPITAL LETTER N WITH CEDILLA | |
226 | 0xd2 0x014c #LATIN CAPITAL LETTER O WITH MACRON | |
227 | 0xd3 0x0136 #LATIN CAPITAL LETTER K WITH CEDILLA | |
228 | 0xd4 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
229 | 0xd5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
230 | 0xd6 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
231 | 0xd7 0x00d7 #MULTIPLICATION SIGN | |
232 | 0xd8 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
233 | 0xd9 0x0172 #LATIN CAPITAL LETTER U WITH OGONEK | |
234 | 0xda 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
235 | 0xdb 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
236 | 0xdc 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
237 | 0xdd 0x0168 #LATIN CAPITAL LETTER U WITH TILDE | |
238 | 0xde 0x016a #LATIN CAPITAL LETTER U WITH MACRON | |
239 | 0xdf 0x00df #LATIN SMALL LETTER SHARP S | |
240 | 0xe0 0x0101 #LATIN SMALL LETTER A WITH MACRON | |
241 | 0xe1 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
242 | 0xe2 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
243 | 0xe3 0x00e3 #LATIN SMALL LETTER A WITH TILDE | |
244 | 0xe4 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
245 | 0xe5 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
246 | 0xe6 0x00e6 #LATIN SMALL LETTER AE | |
247 | 0xe7 0x012f #LATIN SMALL LETTER I WITH OGONEK | |
248 | 0xe8 0x010d #LATIN SMALL LETTER C WITH CARON | |
249 | 0xe9 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
250 | 0xea 0x0119 #LATIN SMALL LETTER E WITH OGONEK | |
251 | 0xeb 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
252 | 0xec 0x0117 #LATIN SMALL LETTER E WITH DOT ABOVE | |
253 | 0xed 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
254 | 0xee 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
255 | 0xef 0x012b #LATIN SMALL LETTER I WITH MACRON | |
256 | 0xf0 0x0111 #LATIN SMALL LETTER D WITH STROKE | |
257 | 0xf1 0x0146 #LATIN SMALL LETTER N WITH CEDILLA | |
258 | 0xf2 0x014d #LATIN SMALL LETTER O WITH MACRON | |
259 | 0xf3 0x0137 #LATIN SMALL LETTER K WITH CEDILLA | |
260 | 0xf4 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
261 | 0xf5 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
262 | 0xf6 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
263 | 0xf7 0x00f7 #DIVISION SIGN | |
264 | 0xf8 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
265 | 0xf9 0x0173 #LATIN SMALL LETTER U WITH OGONEK | |
266 | 0xfa 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
267 | 0xfb 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
268 | 0xfc 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
269 | 0xfd 0x0169 #LATIN SMALL LETTER U WITH TILDE | |
270 | 0xfe 0x016b #LATIN SMALL LETTER U WITH MACRON | |
271 | 0xff 0x02d9 #DOT ABOVE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: ISO8859_5 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the ISO8859_5 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in ISO8859_5 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0080 # | |
145 | 0x81 0x0081 # | |
146 | 0x82 0x0082 #BREAK PERMITTED HERE | |
147 | 0x83 0x0083 #NO BREAK HERE | |
148 | 0x84 0x0084 # | |
149 | 0x85 0x0085 #NEXT LINE (NEL) | |
150 | 0x86 0x0086 #START OF SELECTED AREA | |
151 | 0x87 0x0087 #END OF SELECTED AREA | |
152 | 0x88 0x0088 #CHARACTER TABULATION SET | |
153 | 0x89 0x0089 #CHARACTER TABULATION WITH JUSTIFICATION | |
154 | 0x8a 0x008a #LINE TABULATION SET | |
155 | 0x8b 0x008b #PARTIAL LINE FORWARD | |
156 | 0x8c 0x008c #PARTIAL LINE BACKWARD | |
157 | 0x8d 0x008d #REVERSE LINE FEED | |
158 | 0x8e 0x008e #SINGLE SHIFT TWO | |
159 | 0x8f 0x008f #SINGLE SHIFT THREE | |
160 | 0x90 0x0090 #DEVICE CONTROL STRING | |
161 | 0x91 0x0091 #PRIVATE USE ONE | |
162 | 0x92 0x0092 #PRIVATE USE TWO | |
163 | 0x93 0x0093 #SET TRANSMIT STATE | |
164 | 0x94 0x0094 #CANCEL CHARACTER | |
165 | 0x95 0x0095 #MESSAGE WAITING | |
166 | 0x96 0x0096 #START OF GUARDED AREA | |
167 | 0x97 0x0097 #END OF GUARDED AREA | |
168 | 0x98 0x0098 #START OF STRING | |
169 | 0x99 0x0099 # | |
170 | 0x9a 0x009a #SINGLE CHARACTER INTRODUCER | |
171 | 0x9b 0x009b #CONTROL SEQUENCE INTRODUCER | |
172 | 0x9c 0x009c #STRING TERMINATOR | |
173 | 0x9d 0x009d #OPERATING SYSTEM COMMAND | |
174 | 0x9e 0x009e #PRIVACY MESSAGE | |
175 | 0x9f 0x009f #APPLICATION PROGRAM COMMAND | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x0401 #CYRILLIC CAPITAL LETTER IO | |
178 | 0xa2 0x0402 #CYRILLIC CAPITAL LETTER DJE | |
179 | 0xa3 0x0403 #CYRILLIC CAPITAL LETTER GJE | |
180 | 0xa4 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE | |
181 | 0xa5 0x0405 #CYRILLIC CAPITAL LETTER DZE | |
182 | 0xa6 0x0406 #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I | |
183 | 0xa7 0x0407 #CYRILLIC CAPITAL LETTER YI | |
184 | 0xa8 0x0408 #CYRILLIC CAPITAL LETTER JE | |
185 | 0xa9 0x0409 #CYRILLIC CAPITAL LETTER LJE | |
186 | 0xaa 0x040a #CYRILLIC CAPITAL LETTER NJE | |
187 | 0xab 0x040b #CYRILLIC CAPITAL LETTER TSHE | |
188 | 0xac 0x040c #CYRILLIC CAPITAL LETTER KJE | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x040e #CYRILLIC CAPITAL LETTER SHORT U | |
191 | 0xaf 0x040f #CYRILLIC CAPITAL LETTER DZHE | |
192 | 0xb0 0x0410 #CYRILLIC CAPITAL LETTER A | |
193 | 0xb1 0x0411 #CYRILLIC CAPITAL LETTER BE | |
194 | 0xb2 0x0412 #CYRILLIC CAPITAL LETTER VE | |
195 | 0xb3 0x0413 #CYRILLIC CAPITAL LETTER GHE | |
196 | 0xb4 0x0414 #CYRILLIC CAPITAL LETTER DE | |
197 | 0xb5 0x0415 #CYRILLIC CAPITAL LETTER IE | |
198 | 0xb6 0x0416 #CYRILLIC CAPITAL LETTER ZHE | |
199 | 0xb7 0x0417 #CYRILLIC CAPITAL LETTER ZE | |
200 | 0xb8 0x0418 #CYRILLIC CAPITAL LETTER I | |
201 | 0xb9 0x0419 #CYRILLIC CAPITAL LETTER SHORT I | |
202 | 0xba 0x041a #CYRILLIC CAPITAL LETTER KA | |
203 | 0xbb 0x041b #CYRILLIC CAPITAL LETTER EL | |
204 | 0xbc 0x041c #CYRILLIC CAPITAL LETTER EM | |
205 | 0xbd 0x041d #CYRILLIC CAPITAL LETTER EN | |
206 | 0xbe 0x041e #CYRILLIC CAPITAL LETTER O | |
207 | 0xbf 0x041f #CYRILLIC CAPITAL LETTER PE | |
208 | 0xc0 0x0420 #CYRILLIC CAPITAL LETTER ER | |
209 | 0xc1 0x0421 #CYRILLIC CAPITAL LETTER ES | |
210 | 0xc2 0x0422 #CYRILLIC CAPITAL LETTER TE | |
211 | 0xc3 0x0423 #CYRILLIC CAPITAL LETTER U | |
212 | 0xc4 0x0424 #CYRILLIC CAPITAL LETTER EF | |
213 | 0xc5 0x0425 #CYRILLIC CAPITAL LETTER HA | |
214 | 0xc6 0x0426 #CYRILLIC CAPITAL LETTER TSE | |
215 | 0xc7 0x0427 #CYRILLIC CAPITAL LETTER CHE | |
216 | 0xc8 0x0428 #CYRILLIC CAPITAL LETTER SHA | |
217 | 0xc9 0x0429 #CYRILLIC CAPITAL LETTER SHCHA | |
218 | 0xca 0x042a #CYRILLIC CAPITAL LETTER HARD SIGN | |
219 | 0xcb 0x042b #CYRILLIC CAPITAL LETTER YERU | |
220 | 0xcc 0x042c #CYRILLIC CAPITAL LETTER SOFT SIGN | |
221 | 0xcd 0x042d #CYRILLIC CAPITAL LETTER E | |
222 | 0xce 0x042e #CYRILLIC CAPITAL LETTER YU | |
223 | 0xcf 0x042f #CYRILLIC CAPITAL LETTER YA | |
224 | 0xd0 0x0430 #CYRILLIC SMALL LETTER A | |
225 | 0xd1 0x0431 #CYRILLIC SMALL LETTER BE | |
226 | 0xd2 0x0432 #CYRILLIC SMALL LETTER VE | |
227 | 0xd3 0x0433 #CYRILLIC SMALL LETTER GHE | |
228 | 0xd4 0x0434 #CYRILLIC SMALL LETTER DE | |
229 | 0xd5 0x0435 #CYRILLIC SMALL LETTER IE | |
230 | 0xd6 0x0436 #CYRILLIC SMALL LETTER ZHE | |
231 | 0xd7 0x0437 #CYRILLIC SMALL LETTER ZE | |
232 | 0xd8 0x0438 #CYRILLIC SMALL LETTER I | |
233 | 0xd9 0x0439 #CYRILLIC SMALL LETTER SHORT I | |
234 | 0xda 0x043a #CYRILLIC SMALL LETTER KA | |
235 | 0xdb 0x043b #CYRILLIC SMALL LETTER EL | |
236 | 0xdc 0x043c #CYRILLIC SMALL LETTER EM | |
237 | 0xdd 0x043d #CYRILLIC SMALL LETTER EN | |
238 | 0xde 0x043e #CYRILLIC SMALL LETTER O | |
239 | 0xdf 0x043f #CYRILLIC SMALL LETTER PE | |
240 | 0xe0 0x0440 #CYRILLIC SMALL LETTER ER | |
241 | 0xe1 0x0441 #CYRILLIC SMALL LETTER ES | |
242 | 0xe2 0x0442 #CYRILLIC SMALL LETTER TE | |
243 | 0xe3 0x0443 #CYRILLIC SMALL LETTER U | |
244 | 0xe4 0x0444 #CYRILLIC SMALL LETTER EF | |
245 | 0xe5 0x0445 #CYRILLIC SMALL LETTER HA | |
246 | 0xe6 0x0446 #CYRILLIC SMALL LETTER TSE | |
247 | 0xe7 0x0447 #CYRILLIC SMALL LETTER CHE | |
248 | 0xe8 0x0448 #CYRILLIC SMALL LETTER SHA | |
249 | 0xe9 0x0449 #CYRILLIC SMALL LETTER SHCHA | |
250 | 0xea 0x044a #CYRILLIC SMALL LETTER HARD SIGN | |
251 | 0xeb 0x044b #CYRILLIC SMALL LETTER YERU | |
252 | 0xec 0x044c #CYRILLIC SMALL LETTER SOFT SIGN | |
253 | 0xed 0x044d #CYRILLIC SMALL LETTER E | |
254 | 0xee 0x044e #CYRILLIC SMALL LETTER YU | |
255 | 0xef 0x044f #CYRILLIC SMALL LETTER YA | |
256 | 0xf0 0x2116 #NUMERO SIGN | |
257 | 0xf1 0x0451 #CYRILLIC SMALL LETTER IO | |
258 | 0xf2 0x0452 #CYRILLIC SMALL LETTER DJE | |
259 | 0xf3 0x0453 #CYRILLIC SMALL LETTER GJE | |
260 | 0xf4 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE | |
261 | 0xf5 0x0455 #CYRILLIC SMALL LETTER DZE | |
262 | 0xf6 0x0456 #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I | |
263 | 0xf7 0x0457 #CYRILLIC SMALL LETTER YI | |
264 | 0xf8 0x0458 #CYRILLIC SMALL LETTER JE | |
265 | 0xf9 0x0459 #CYRILLIC SMALL LETTER LJE | |
266 | 0xfa 0x045a #CYRILLIC SMALL LETTER NJE | |
267 | 0xfb 0x045b #CYRILLIC SMALL LETTER TSHE | |
268 | 0xfc 0x045c #CYRILLIC SMALL LETTER KJE | |
269 | 0xfd 0x00a7 #SECTION SIGN | |
270 | 0xfe 0x045e #CYRILLIC SMALL LETTER SHORT U | |
271 | 0xff 0x045f #CYRILLIC SMALL LETTER DZHE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: ISO8859_6 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the ISO8859_6 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in ISO8859_6 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0080 # | |
145 | 0x81 0x0081 # | |
146 | 0x82 0x0082 #BREAK PERMITTED HERE | |
147 | 0x83 0x0083 #NO BREAK HERE | |
148 | 0x84 0x0084 # | |
149 | 0x85 0x0085 #NEXT LINE (NEL) | |
150 | 0x86 0x0086 #START OF SELECTED AREA | |
151 | 0x87 0x0087 #END OF SELECTED AREA | |
152 | 0x88 0x0088 #CHARACTER TABULATION SET | |
153 | 0x89 0x0089 #CHARACTER TABULATION WITH JUSTIFICATION | |
154 | 0x8a 0x008a #LINE TABULATION SET | |
155 | 0x8b 0x008b #PARTIAL LINE FORWARD | |
156 | 0x8c 0x008c #PARTIAL LINE BACKWARD | |
157 | 0x8d 0x008d #REVERSE LINE FEED | |
158 | 0x8e 0x008e #SINGLE SHIFT TWO | |
159 | 0x8f 0x008f #SINGLE SHIFT THREE | |
160 | 0x90 0x0090 #DEVICE CONTROL STRING | |
161 | 0x91 0x0091 #PRIVATE USE ONE | |
162 | 0x92 0x0092 #PRIVATE USE TWO | |
163 | 0x93 0x0093 #SET TRANSMIT STATE | |
164 | 0x94 0x0094 #CANCEL CHARACTER | |
165 | 0x95 0x0095 #MESSAGE WAITING | |
166 | 0x96 0x0096 #START OF GUARDED AREA | |
167 | 0x97 0x0097 #END OF GUARDED AREA | |
168 | 0x98 0x0098 #START OF STRING | |
169 | 0x99 0x0099 # | |
170 | 0x9a 0x009a #SINGLE CHARACTER INTRODUCER | |
171 | 0x9b 0x009b #CONTROL SEQUENCE INTRODUCER | |
172 | 0x9c 0x009c #STRING TERMINATOR | |
173 | 0x9d 0x009d #OPERATING SYSTEM COMMAND | |
174 | 0x9e 0x009e #PRIVACY MESSAGE | |
175 | 0x9f 0x009f #APPLICATION PROGRAM COMMAND | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 #UNDEFINED | |
178 | 0xa2 #UNDEFINED | |
179 | 0xa3 #UNDEFINED | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 #UNDEFINED | |
182 | 0xa6 #UNDEFINED | |
183 | 0xa7 #UNDEFINED | |
184 | 0xa8 #UNDEFINED | |
185 | 0xa9 #UNDEFINED | |
186 | 0xaa #UNDEFINED | |
187 | 0xab #UNDEFINED | |
188 | 0xac 0x060c #ARABIC COMMA | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae #UNDEFINED | |
191 | 0xaf #UNDEFINED | |
192 | 0xb0 #UNDEFINED | |
193 | 0xb1 #UNDEFINED | |
194 | 0xb2 #UNDEFINED | |
195 | 0xb3 #UNDEFINED | |
196 | 0xb4 #UNDEFINED | |
197 | 0xb5 #UNDEFINED | |
198 | 0xb6 #UNDEFINED | |
199 | 0xb7 #UNDEFINED | |
200 | 0xb8 #UNDEFINED | |
201 | 0xb9 #UNDEFINED | |
202 | 0xba #UNDEFINED | |
203 | 0xbb 0x061b #ARABIC SEMICOLON | |
204 | 0xbc #UNDEFINED | |
205 | 0xbd #UNDEFINED | |
206 | 0xbe #UNDEFINED | |
207 | 0xbf 0x061f #ARABIC QUESTION MARK | |
208 | 0xc0 #UNDEFINED | |
209 | 0xc1 0x0621 #ARABIC LETTER HAMZA | |
210 | 0xc2 0x0622 #ARABIC LETTER ALEF WITH MADDA ABOVE | |
211 | 0xc3 0x0623 #ARABIC LETTER ALEF WITH HAMZA ABOVE | |
212 | 0xc4 0x0624 #ARABIC LETTER WAW WITH HAMZA ABOVE | |
213 | 0xc5 0x0625 #ARABIC LETTER ALEF WITH HAMZA BELOW | |
214 | 0xc6 0x0626 #ARABIC LETTER YEH WITH HAMZA ABOVE | |
215 | 0xc7 0x0627 #ARABIC LETTER ALEF | |
216 | 0xc8 0x0628 #ARABIC LETTER BEH | |
217 | 0xc9 0x0629 #ARABIC LETTER TEH MARBUTA | |
218 | 0xca 0x062a #ARABIC LETTER TEH | |
219 | 0xcb 0x062b #ARABIC LETTER THEH | |
220 | 0xcc 0x062c #ARABIC LETTER JEEM | |
221 | 0xcd 0x062d #ARABIC LETTER HAH | |
222 | 0xce 0x062e #ARABIC LETTER KHAH | |
223 | 0xcf 0x062f #ARABIC LETTER DAL | |
224 | 0xd0 0x0630 #ARABIC LETTER THAL | |
225 | 0xd1 0x0631 #ARABIC LETTER REH | |
226 | 0xd2 0x0632 #ARABIC LETTER ZAIN | |
227 | 0xd3 0x0633 #ARABIC LETTER SEEN | |
228 | 0xd4 0x0634 #ARABIC LETTER SHEEN | |
229 | 0xd5 0x0635 #ARABIC LETTER SAD | |
230 | 0xd6 0x0636 #ARABIC LETTER DAD | |
231 | 0xd7 0x0637 #ARABIC LETTER TAH | |
232 | 0xd8 0x0638 #ARABIC LETTER ZAH | |
233 | 0xd9 0x0639 #ARABIC LETTER AIN | |
234 | 0xda 0x063a #ARABIC LETTER GHAIN | |
235 | 0xdb #UNDEFINED | |
236 | 0xdc #UNDEFINED | |
237 | 0xdd #UNDEFINED | |
238 | 0xde #UNDEFINED | |
239 | 0xdf #UNDEFINED | |
240 | 0xe0 0x0640 #ARABIC TATWEEL | |
241 | 0xe1 0x0641 #ARABIC LETTER FEH | |
242 | 0xe2 0x0642 #ARABIC LETTER QAF | |
243 | 0xe3 0x0643 #ARABIC LETTER KAF | |
244 | 0xe4 0x0644 #ARABIC LETTER LAM | |
245 | 0xe5 0x0645 #ARABIC LETTER MEEM | |
246 | 0xe6 0x0646 #ARABIC LETTER NOON | |
247 | 0xe7 0x0647 #ARABIC LETTER HEH | |
248 | 0xe8 0x0648 #ARABIC LETTER WAW | |
249 | 0xe9 0x0649 #ARABIC LETTER ALEF MAKSURA | |
250 | 0xea 0x064a #ARABIC LETTER YEH | |
251 | 0xeb 0x064b #ARABIC FATHATAN | |
252 | 0xec 0x064c #ARABIC DAMMATAN | |
253 | 0xed 0x064d #ARABIC KASRATAN | |
254 | 0xee 0x064e #ARABIC FATHA | |
255 | 0xef 0x064f #ARABIC DAMMA | |
256 | 0xf0 0x0650 #ARABIC KASRA | |
257 | 0xf1 0x0651 #ARABIC SHADDA | |
258 | 0xf2 0x0652 #ARABIC SUKUN | |
259 | 0xf3 #UNDEFINED | |
260 | 0xf4 #UNDEFINED | |
261 | 0xf5 #UNDEFINED | |
262 | 0xf6 #UNDEFINED | |
263 | 0xf7 #UNDEFINED | |
264 | 0xf8 #UNDEFINED | |
265 | 0xf9 #UNDEFINED | |
266 | 0xfa #UNDEFINED | |
267 | 0xfb #UNDEFINED | |
268 | 0xfc #UNDEFINED | |
269 | 0xfd #UNDEFINED | |
270 | 0xfe #UNDEFINED | |
271 | 0xff #UNDEFINED | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: ISO8859_7 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the ISO8859_7 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in ISO8859_7 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0080 # | |
145 | 0x81 0x0081 # | |
146 | 0x82 0x0082 #BREAK PERMITTED HERE | |
147 | 0x83 0x0083 #NO BREAK HERE | |
148 | 0x84 0x0084 # | |
149 | 0x85 0x0085 #NEXT LINE (NEL) | |
150 | 0x86 0x0086 #START OF SELECTED AREA | |
151 | 0x87 0x0087 #END OF SELECTED AREA | |
152 | 0x88 0x0088 #CHARACTER TABULATION SET | |
153 | 0x89 0x0089 #CHARACTER TABULATION WITH JUSTIFICATION | |
154 | 0x8a 0x008a #LINE TABULATION SET | |
155 | 0x8b 0x008b #PARTIAL LINE FORWARD | |
156 | 0x8c 0x008c #PARTIAL LINE BACKWARD | |
157 | 0x8d 0x008d #REVERSE LINE FEED | |
158 | 0x8e 0x008e #SINGLE SHIFT TWO | |
159 | 0x8f 0x008f #SINGLE SHIFT THREE | |
160 | 0x90 0x0090 #DEVICE CONTROL STRING | |
161 | 0x91 0x0091 #PRIVATE USE ONE | |
162 | 0x92 0x0092 #PRIVATE USE TWO | |
163 | 0x93 0x0093 #SET TRANSMIT STATE | |
164 | 0x94 0x0094 #CANCEL CHARACTER | |
165 | 0x95 0x0095 #MESSAGE WAITING | |
166 | 0x96 0x0096 #START OF GUARDED AREA | |
167 | 0x97 0x0097 #END OF GUARDED AREA | |
168 | 0x98 0x0098 #START OF STRING | |
169 | 0x99 0x0099 # | |
170 | 0x9a 0x009a #SINGLE CHARACTER INTRODUCER | |
171 | 0x9b 0x009b #CONTROL SEQUENCE INTRODUCER | |
172 | 0x9c 0x009c #STRING TERMINATOR | |
173 | 0x9d 0x009d #OPERATING SYSTEM COMMAND | |
174 | 0x9e 0x009e #PRIVACY MESSAGE | |
175 | 0x9f 0x009f #APPLICATION PROGRAM COMMAND | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x02bd #MODIFIER LETTER REVERSED COMMA | |
178 | 0xa2 0x02bc #MODIFIER LETTER APOSTROPHE | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 #UNDEFINED | |
181 | 0xa5 #UNDEFINED | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa #UNDEFINED | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae #UNDEFINED | |
191 | 0xaf 0x2015 #HORIZONTAL BAR | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x0384 #GREEK TONOS | |
197 | 0xb5 0x0385 #GREEK DIALYTIKA TONOS | |
198 | 0xb6 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS | |
201 | 0xb9 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS | |
202 | 0xba 0x038a #GREEK CAPITAL LETTER IOTA WITH TONOS | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x038c #GREEK CAPITAL LETTER OMICRON WITH TONOS | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe 0x038e #GREEK CAPITAL LETTER UPSILON WITH TONOS | |
207 | 0xbf 0x038f #GREEK CAPITAL LETTER OMEGA WITH TONOS | |
208 | 0xc0 0x0390 #GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS | |
209 | 0xc1 0x0391 #GREEK CAPITAL LETTER ALPHA | |
210 | 0xc2 0x0392 #GREEK CAPITAL LETTER BETA | |
211 | 0xc3 0x0393 #GREEK CAPITAL LETTER GAMMA | |
212 | 0xc4 0x0394 #GREEK CAPITAL LETTER DELTA | |
213 | 0xc5 0x0395 #GREEK CAPITAL LETTER EPSILON | |
214 | 0xc6 0x0396 #GREEK CAPITAL LETTER ZETA | |
215 | 0xc7 0x0397 #GREEK CAPITAL LETTER ETA | |
216 | 0xc8 0x0398 #GREEK CAPITAL LETTER THETA | |
217 | 0xc9 0x0399 #GREEK CAPITAL LETTER IOTA | |
218 | 0xca 0x039a #GREEK CAPITAL LETTER KAPPA | |
219 | 0xcb 0x039b #GREEK CAPITAL LETTER LAMDA | |
220 | 0xcc 0x039c #GREEK CAPITAL LETTER MU | |
221 | 0xcd 0x039d #GREEK CAPITAL LETTER NU | |
222 | 0xce 0x039e #GREEK CAPITAL LETTER XI | |
223 | 0xcf 0x039f #GREEK CAPITAL LETTER OMICRON | |
224 | 0xd0 0x03a0 #GREEK CAPITAL LETTER PI | |
225 | 0xd1 0x03a1 #GREEK CAPITAL LETTER RHO | |
226 | 0xd2 #UNDEFINED | |
227 | 0xd3 0x03a3 #GREEK CAPITAL LETTER SIGMA | |
228 | 0xd4 0x03a4 #GREEK CAPITAL LETTER TAU | |
229 | 0xd5 0x03a5 #GREEK CAPITAL LETTER UPSILON | |
230 | 0xd6 0x03a6 #GREEK CAPITAL LETTER PHI | |
231 | 0xd7 0x03a7 #GREEK CAPITAL LETTER CHI | |
232 | 0xd8 0x03a8 #GREEK CAPITAL LETTER PSI | |
233 | 0xd9 0x03a9 #GREEK CAPITAL LETTER OMEGA | |
234 | 0xda 0x03aa #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA | |
235 | 0xdb 0x03ab #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA | |
236 | 0xdc 0x03ac #GREEK SMALL LETTER ALPHA WITH TONOS | |
237 | 0xdd 0x03ad #GREEK SMALL LETTER EPSILON WITH TONOS | |
238 | 0xde 0x03ae #GREEK SMALL LETTER ETA WITH TONOS | |
239 | 0xdf 0x03af #GREEK SMALL LETTER IOTA WITH TONOS | |
240 | 0xe0 0x03b0 #GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS | |
241 | 0xe1 0x03b1 #GREEK SMALL LETTER ALPHA | |
242 | 0xe2 0x03b2 #GREEK SMALL LETTER BETA | |
243 | 0xe3 0x03b3 #GREEK SMALL LETTER GAMMA | |
244 | 0xe4 0x03b4 #GREEK SMALL LETTER DELTA | |
245 | 0xe5 0x03b5 #GREEK SMALL LETTER EPSILON | |
246 | 0xe6 0x03b6 #GREEK SMALL LETTER ZETA | |
247 | 0xe7 0x03b7 #GREEK SMALL LETTER ETA | |
248 | 0xe8 0x03b8 #GREEK SMALL LETTER THETA | |
249 | 0xe9 0x03b9 #GREEK SMALL LETTER IOTA | |
250 | 0xea 0x03ba #GREEK SMALL LETTER KAPPA | |
251 | 0xeb 0x03bb #GREEK SMALL LETTER LAMDA | |
252 | 0xec 0x03bc #GREEK SMALL LETTER MU | |
253 | 0xed 0x03bd #GREEK SMALL LETTER NU | |
254 | 0xee 0x03be #GREEK SMALL LETTER XI | |
255 | 0xef 0x03bf #GREEK SMALL LETTER OMICRON | |
256 | 0xf0 0x03c0 #GREEK SMALL LETTER PI | |
257 | 0xf1 0x03c1 #GREEK SMALL LETTER RHO | |
258 | 0xf2 0x03c2 #GREEK SMALL LETTER FINAL SIGMA | |
259 | 0xf3 0x03c3 #GREEK SMALL LETTER SIGMA | |
260 | 0xf4 0x03c4 #GREEK SMALL LETTER TAU | |
261 | 0xf5 0x03c5 #GREEK SMALL LETTER UPSILON | |
262 | 0xf6 0x03c6 #GREEK SMALL LETTER PHI | |
263 | 0xf7 0x03c7 #GREEK SMALL LETTER CHI | |
264 | 0xf8 0x03c8 #GREEK SMALL LETTER PSI | |
265 | 0xf9 0x03c9 #GREEK SMALL LETTER OMEGA | |
266 | 0xfa 0x03ca #GREEK SMALL LETTER IOTA WITH DIALYTIKA | |
267 | 0xfb 0x03cb #GREEK SMALL LETTER UPSILON WITH DIALYTIKA | |
268 | 0xfc 0x03cc #GREEK SMALL LETTER OMICRON WITH TONOS | |
269 | 0xfd 0x03cd #GREEK SMALL LETTER UPSILON WITH TONOS | |
270 | 0xfe 0x03ce #GREEK SMALL LETTER OMEGA WITH TONOS | |
271 | 0xff #UNDEFINED | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: ISO8859_8 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the ISO8859_8 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in ISO8859_8 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0080 # | |
145 | 0x81 0x0081 # | |
146 | 0x82 0x0082 #BREAK PERMITTED HERE | |
147 | 0x83 0x0083 #NO BREAK HERE | |
148 | 0x84 0x0084 # | |
149 | 0x85 0x0085 #NEXT LINE (NEL) | |
150 | 0x86 0x0086 #START OF SELECTED AREA | |
151 | 0x87 0x0087 #END OF SELECTED AREA | |
152 | 0x88 0x0088 #CHARACTER TABULATION SET | |
153 | 0x89 0x0089 #CHARACTER TABULATION WITH JUSTIFICATION | |
154 | 0x8a 0x008a #LINE TABULATION SET | |
155 | 0x8b 0x008b #PARTIAL LINE FORWARD | |
156 | 0x8c 0x008c #PARTIAL LINE BACKWARD | |
157 | 0x8d 0x008d #REVERSE LINE FEED | |
158 | 0x8e 0x008e #SINGLE SHIFT TWO | |
159 | 0x8f 0x008f #SINGLE SHIFT THREE | |
160 | 0x90 0x0090 #DEVICE CONTROL STRING | |
161 | 0x91 0x0091 #PRIVATE USE ONE | |
162 | 0x92 0x0092 #PRIVATE USE TWO | |
163 | 0x93 0x0093 #SET TRANSMIT STATE | |
164 | 0x94 0x0094 #CANCEL CHARACTER | |
165 | 0x95 0x0095 #MESSAGE WAITING | |
166 | 0x96 0x0096 #START OF GUARDED AREA | |
167 | 0x97 0x0097 #END OF GUARDED AREA | |
168 | 0x98 0x0098 #START OF STRING | |
169 | 0x99 0x0099 # | |
170 | 0x9a 0x009a #SINGLE CHARACTER INTRODUCER | |
171 | 0x9b 0x009b #CONTROL SEQUENCE INTRODUCER | |
172 | 0x9c 0x009c #STRING TERMINATOR | |
173 | 0x9d 0x009d #OPERATING SYSTEM COMMAND | |
174 | 0x9e 0x009e #PRIVACY MESSAGE | |
175 | 0x9f 0x009f #APPLICATION PROGRAM COMMAND | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 #UNDEFINED | |
178 | 0xa2 0x00a2 #CENT SIGN | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x00a5 #YEN SIGN | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa 0x00d7 #MULTIPLICATION SIGN | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x203e #OVERLINE | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x00b8 #CEDILLA | |
201 | 0xb9 0x00b9 #SUPERSCRIPT ONE | |
202 | 0xba 0x00f7 #DIVISION SIGN | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x00bc #VULGAR FRACTION ONE QUARTER | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe 0x00be #VULGAR FRACTION THREE QUARTERS | |
207 | 0xbf #UNDEFINED | |
208 | 0xc0 #UNDEFINED | |
209 | 0xc1 #UNDEFINED | |
210 | 0xc2 #UNDEFINED | |
211 | 0xc3 #UNDEFINED | |
212 | 0xc4 #UNDEFINED | |
213 | 0xc5 #UNDEFINED | |
214 | 0xc6 #UNDEFINED | |
215 | 0xc7 #UNDEFINED | |
216 | 0xc8 #UNDEFINED | |
217 | 0xc9 #UNDEFINED | |
218 | 0xca #UNDEFINED | |
219 | 0xcb #UNDEFINED | |
220 | 0xcc #UNDEFINED | |
221 | 0xcd #UNDEFINED | |
222 | 0xce #UNDEFINED | |
223 | 0xcf #UNDEFINED | |
224 | 0xd0 #UNDEFINED | |
225 | 0xd1 #UNDEFINED | |
226 | 0xd2 #UNDEFINED | |
227 | 0xd3 #UNDEFINED | |
228 | 0xd4 #UNDEFINED | |
229 | 0xd5 #UNDEFINED | |
230 | 0xd6 #UNDEFINED | |
231 | 0xd7 #UNDEFINED | |
232 | 0xd8 #UNDEFINED | |
233 | 0xd9 #UNDEFINED | |
234 | 0xda #UNDEFINED | |
235 | 0xdb #UNDEFINED | |
236 | 0xdc #UNDEFINED | |
237 | 0xdd #UNDEFINED | |
238 | 0xde #UNDEFINED | |
239 | 0xdf 0x2017 #DOUBLE LOW LINE | |
240 | 0xe0 0x05d0 #HEBREW LETTER ALEF | |
241 | 0xe1 0x05d1 #HEBREW LETTER BET | |
242 | 0xe2 0x05d2 #HEBREW LETTER GIMEL | |
243 | 0xe3 0x05d3 #HEBREW LETTER DALET | |
244 | 0xe4 0x05d4 #HEBREW LETTER HE | |
245 | 0xe5 0x05d5 #HEBREW LETTER VAV | |
246 | 0xe6 0x05d6 #HEBREW LETTER ZAYIN | |
247 | 0xe7 0x05d7 #HEBREW LETTER HET | |
248 | 0xe8 0x05d8 #HEBREW LETTER TET | |
249 | 0xe9 0x05d9 #HEBREW LETTER YOD | |
250 | 0xea 0x05da #HEBREW LETTER FINAL KAF | |
251 | 0xeb 0x05db #HEBREW LETTER KAF | |
252 | 0xec 0x05dc #HEBREW LETTER LAMED | |
253 | 0xed 0x05dd #HEBREW LETTER FINAL MEM | |
254 | 0xee 0x05de #HEBREW LETTER MEM | |
255 | 0xef 0x05df #HEBREW LETTER FINAL NUN | |
256 | 0xf0 0x05e0 #HEBREW LETTER NUN | |
257 | 0xf1 0x05e1 #HEBREW LETTER SAMEKH | |
258 | 0xf2 0x05e2 #HEBREW LETTER AYIN | |
259 | 0xf3 0x05e3 #HEBREW LETTER FINAL PE | |
260 | 0xf4 0x05e4 #HEBREW LETTER PE | |
261 | 0xf5 0x05e5 #HEBREW LETTER FINAL TSADI | |
262 | 0xf6 0x05e6 #HEBREW LETTER TSADI | |
263 | 0xf7 0x05e7 #HEBREW LETTER QOF | |
264 | 0xf8 0x05e8 #HEBREW LETTER RESH | |
265 | 0xf9 0x05e9 #HEBREW LETTER SHIN | |
266 | 0xfa 0x05ea #HEBREW LETTER TAV | |
267 | 0xfb #UNDEFINED | |
268 | 0xfc #UNDEFINED | |
269 | 0xfd #UNDEFINED | |
270 | 0xfe #UNDEFINED | |
271 | 0xff #UNDEFINED | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: ISO8859_9 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the ISO8859_9 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in ISO8859_9 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0080 # | |
145 | 0x81 0x0081 # | |
146 | 0x82 0x0082 #BREAK PERMITTED HERE | |
147 | 0x83 0x0083 #NO BREAK HERE | |
148 | 0x84 0x0084 # | |
149 | 0x85 0x0085 #NEXT LINE (NEL) | |
150 | 0x86 0x0086 #START OF SELECTED AREA | |
151 | 0x87 0x0087 #END OF SELECTED AREA | |
152 | 0x88 0x0088 #CHARACTER TABULATION SET | |
153 | 0x89 0x0089 #CHARACTER TABULATION WITH JUSTIFICATION | |
154 | 0x8a 0x008a #LINE TABULATION SET | |
155 | 0x8b 0x008b #PARTIAL LINE FORWARD | |
156 | 0x8c 0x008c #PARTIAL LINE BACKWARD | |
157 | 0x8d 0x008d #REVERSE LINE FEED | |
158 | 0x8e 0x008e #SINGLE SHIFT TWO | |
159 | 0x8f 0x008f #SINGLE SHIFT THREE | |
160 | 0x90 0x0090 #DEVICE CONTROL STRING | |
161 | 0x91 0x0091 #PRIVATE USE ONE | |
162 | 0x92 0x0092 #PRIVATE USE TWO | |
163 | 0x93 0x0093 #SET TRANSMIT STATE | |
164 | 0x94 0x0094 #CANCEL CHARACTER | |
165 | 0x95 0x0095 #MESSAGE WAITING | |
166 | 0x96 0x0096 #START OF GUARDED AREA | |
167 | 0x97 0x0097 #END OF GUARDED AREA | |
168 | 0x98 0x0098 #START OF STRING | |
169 | 0x99 0x0099 # | |
170 | 0x9a 0x009a #SINGLE CHARACTER INTRODUCER | |
171 | 0x9b 0x009b #CONTROL SEQUENCE INTRODUCER | |
172 | 0x9c 0x009c #STRING TERMINATOR | |
173 | 0x9d 0x009d #OPERATING SYSTEM COMMAND | |
174 | 0x9e 0x009e #PRIVACY MESSAGE | |
175 | 0x9f 0x009f #APPLICATION PROGRAM COMMAND | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x00a1 #INVERTED EXCLAMATION MARK | |
178 | 0xa2 0x00a2 #CENT SIGN | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x00a5 #YEN SIGN | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa 0x00aa #FEMININE ORDINAL INDICATOR | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x00af #MACRON | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x00b8 #CEDILLA | |
201 | 0xb9 0x00b9 #SUPERSCRIPT ONE | |
202 | 0xba 0x00ba #MASCULINE ORDINAL INDICATOR | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x00bc #VULGAR FRACTION ONE QUARTER | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe 0x00be #VULGAR FRACTION THREE QUARTERS | |
207 | 0xbf 0x00bf #INVERTED QUESTION MARK | |
208 | 0xc0 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE | |
209 | 0xc1 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
210 | 0xc2 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
211 | 0xc3 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE | |
212 | 0xc4 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
213 | 0xc5 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
214 | 0xc6 0x00c6 #LATIN CAPITAL LETTER AE | |
215 | 0xc7 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
216 | 0xc8 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE | |
217 | 0xc9 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
218 | 0xca 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
219 | 0xcb 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
220 | 0xcc 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE | |
221 | 0xcd 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
222 | 0xce 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
223 | 0xcf 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS | |
224 | 0xd0 0x011e #LATIN CAPITAL LETTER G WITH BREVE | |
225 | 0xd1 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
226 | 0xd2 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE | |
227 | 0xd3 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
228 | 0xd4 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
229 | 0xd5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
230 | 0xd6 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
231 | 0xd7 0x00d7 #MULTIPLICATION SIGN | |
232 | 0xd8 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
233 | 0xd9 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE | |
234 | 0xda 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
235 | 0xdb 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
236 | 0xdc 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
237 | 0xdd 0x0130 #LATIN CAPITAL LETTER I WITH DOT ABOVE | |
238 | 0xde 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA | |
239 | 0xdf 0x00df #LATIN SMALL LETTER SHARP S | |
240 | 0xe0 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
241 | 0xe1 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
242 | 0xe2 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
243 | 0xe3 0x00e3 #LATIN SMALL LETTER A WITH TILDE | |
244 | 0xe4 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
245 | 0xe5 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
246 | 0xe6 0x00e6 #LATIN SMALL LETTER AE | |
247 | 0xe7 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
248 | 0xe8 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
249 | 0xe9 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
250 | 0xea 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
251 | 0xeb 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
252 | 0xec 0x00ec #LATIN SMALL LETTER I WITH GRAVE | |
253 | 0xed 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
254 | 0xee 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
255 | 0xef 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
256 | 0xf0 0x011f #LATIN SMALL LETTER G WITH BREVE | |
257 | 0xf1 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
258 | 0xf2 0x00f2 #LATIN SMALL LETTER O WITH GRAVE | |
259 | 0xf3 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
260 | 0xf4 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
261 | 0xf5 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
262 | 0xf6 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
263 | 0xf7 0x00f7 #DIVISION SIGN | |
264 | 0xf8 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
265 | 0xf9 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
266 | 0xfa 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
267 | 0xfb 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
268 | 0xfc 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
269 | 0xfd 0x0131 #LATIN SMALL LETTER DOTLESS I | |
270 | 0xfe 0x015f #LATIN SMALL LETTER S WITH CEDILLA | |
271 | 0xff 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
3 | 3 | |
4 | 4 | Unicode mapping table generated from file asia/JIS/JIS0208.TXT |
5 | 5 | |
6 | # | |
7 | 6 | # Name: JIS X 0208 (1990) to Unicode |
8 | 7 | # Unicode version: 1.1 |
9 | 8 | # Table version: 0.9 |
10 | 9 | # Table format: Format A |
11 | 10 | # Date: 8 March 1994 |
12 | # Authors: Glenn Adams <glenn@metis.com> | |
13 | # John H. Jenkins <John_Jenkins@taligent.com> | |
14 | # | |
15 | # | |
16 | # This file is provided as-is by Unicode, Inc. (The Unicode Consortium). | |
17 | # No claims are made as to fitness for any particular purpose. No | |
18 | # warranties of any kind are expressed or implied. The recipient | |
19 | # agrees to determine applicability of information provided. If this | |
20 | # file has been provided on magnetic media by Unicode, Inc., the sole | |
21 | # remedy for any claim will be exchange of defective media within 90 | |
22 | # days of receipt. | |
23 | # | |
24 | # Recipient is granted the right to make copies in any form for | |
25 | # internal distribution and to freely use the information supplied | |
26 | # in the creation of products supporting Unicode. Unicode, Inc. | |
27 | # specifically excludes the right to re-distribute this file directly | |
28 | # to third parties or other organizations whether for profit or not. | |
29 | # | |
30 | # General notes: | |
31 | # | |
32 | # The following algorithms can be used to change the hex form | |
33 | # of JIS 0208 to other standard forms: | |
34 | # | |
35 | # To change hex to EUC form, add 0x8080 | |
36 | # To change hex to kuten form, first subtract 0x2020. Then | |
37 | # the high and low bytes correspond to the ku and ten of | |
38 | # the kuten form. For example, 0x2121 -> 0x0101 -> 0101; | |
39 | # 0x7426 -> 0x5406 -> 8406 | |
40 | # | |
41 | # The kanji mappings are a normative part of ISO/IEC 10646. The | |
42 | # non-kanji mappings are provisional, pending definition of | |
43 | # official mappings by Japanese standards bodies | |
44 | # | |
45 | # Any comments or problems, contact <John_Jenkins@taligent.com> | |
11 | ||
46 | 12 | * The contents of this file are subject to the Interbase Public |
47 | 13 | * License Version 1.0 (the "License"); you may not use this file |
48 | 14 | * except in compliance with the License. You may obtain a copy |
3 | 3 | |
4 | 4 | Unicode mapping table generated from file koi8r.txt |
5 | 5 | |
6 | 0x00 0x0000 # | |
7 | 0x01 0x0001 # | |
8 | 0x02 0x0002 # | |
9 | 0x03 0x0003 # | |
10 | 0x04 0x0004 # | |
11 | 0x05 0x0005 # | |
12 | 0x06 0x0006 # | |
13 | 0x07 0x0007 # | |
14 | 0x08 0x0008 # | |
15 | 0x09 0x0009 # | |
16 | 0x0A 0x000A # | |
17 | 0x0B 0x000B # | |
18 | 0x0C 0x000C # | |
19 | 0x0D 0x000D # | |
20 | 0x0E 0x000E # | |
21 | 0x0F 0x000F # | |
22 | 0x10 0x0010 # | |
23 | 0x11 0x0011 # | |
24 | 0x12 0x0012 # | |
25 | 0x13 0x0013 # | |
26 | 0x14 0x0014 # | |
27 | 0x15 0x0015 # | |
28 | 0x16 0x0016 # | |
29 | 0x17 0x0017 # | |
30 | 0x18 0x0018 # | |
31 | 0x19 0x0019 # | |
32 | 0x1A 0x001A # | |
33 | 0x1B 0x001B # | |
34 | 0x1C 0x001C # | |
35 | 0x1D 0x001D # | |
36 | 0x1E 0x001E # | |
37 | 0x1F 0x001F # | |
38 | 0x20 0x0020 # | |
39 | 0x21 0x0021 # | |
40 | 0x22 0x0022 # | |
41 | 0x23 0x0023 # | |
42 | 0x24 0x0024 # | |
43 | 0x25 0x0025 # | |
44 | 0x26 0x0026 # | |
45 | 0x27 0x0027 # | |
46 | 0x28 0x0028 # | |
47 | 0x29 0x0029 # | |
48 | 0x2A 0x002A # | |
49 | 0x2B 0x002B # | |
50 | 0x2C 0x002C # | |
51 | 0x2D 0x002D # | |
52 | 0x2E 0x002E # | |
53 | 0x2F 0x002F # | |
54 | 0x30 0x0030 # | |
55 | 0x31 0x0031 # | |
56 | 0x32 0x0032 # | |
57 | 0x33 0x0033 # | |
58 | 0x34 0x0034 # | |
59 | 0x35 0x0035 # | |
60 | 0x36 0x0036 # | |
61 | 0x37 0x0037 # | |
62 | 0x38 0x0038 # | |
63 | 0x39 0x0039 # | |
64 | 0x3A 0x003A # | |
65 | 0x3B 0x003B # | |
66 | 0x3C 0x003C # | |
67 | 0x3D 0x003D # | |
68 | 0x3E 0x003E # | |
69 | 0x3F 0x003F # | |
70 | 0x40 0x0040 # | |
71 | 0x41 0x0041 # | |
72 | 0x42 0x0042 # | |
73 | 0x43 0x0043 # | |
74 | 0x44 0x0044 # | |
75 | 0x45 0x0045 # | |
76 | 0x46 0x0046 # | |
77 | 0x47 0x0047 # | |
78 | 0x48 0x0048 # | |
79 | 0x49 0x0049 # | |
80 | 0x4A 0x004A # | |
81 | 0x4B 0x004B # | |
82 | 0x4C 0x004C # | |
83 | 0x4D 0x004D # | |
84 | 0x4E 0x004E # | |
85 | 0x4F 0x004F # | |
86 | 0x50 0x0050 # | |
87 | 0x51 0x0051 # | |
88 | 0x52 0x0052 # | |
89 | 0x53 0x0053 # | |
90 | 0x54 0x0054 # | |
91 | 0x55 0x0055 # | |
92 | 0x56 0x0056 # | |
93 | 0x57 0x0057 # | |
94 | 0x58 0x0058 # | |
95 | 0x59 0x0059 # | |
96 | 0x5A 0x005A # | |
97 | 0x5B 0x005B # | |
98 | 0x5C 0x005C # | |
99 | 0x5D 0x005D # | |
100 | 0x5E 0x005E # | |
101 | 0x5F 0x005F # | |
102 | 0x60 0x0060 # | |
103 | 0x61 0x0061 # | |
104 | 0x62 0x0062 # | |
105 | 0x63 0x0063 # | |
106 | 0x64 0x0064 # | |
107 | 0x65 0x0065 # | |
108 | 0x66 0x0066 # | |
109 | 0x67 0x0067 # | |
110 | 0x68 0x0068 # | |
111 | 0x69 0x0069 # | |
112 | 0x6A 0x006A # | |
113 | 0x6B 0x006B # | |
114 | 0x6C 0x006C # | |
115 | 0x6D 0x006D # | |
116 | 0x6E 0x006E # | |
117 | 0x6F 0x006F # | |
118 | 0x70 0x0070 # | |
119 | 0x71 0x0071 # | |
120 | 0x72 0x0072 # | |
121 | 0x73 0x0073 # | |
122 | 0x74 0x0074 # | |
123 | 0x75 0x0075 # | |
124 | 0x76 0x0076 # | |
125 | 0x77 0x0077 # | |
126 | 0x78 0x0078 # | |
127 | 0x79 0x0079 # | |
128 | 0x7A 0x007A # | |
129 | 0x7B 0x007B # | |
130 | 0x7C 0x007C # | |
131 | 0x7D 0x007D # | |
132 | 0x7E 0x007E # | |
133 | 0x7F 0x007F # | |
134 | 0x80 0x2500 # | |
135 | 0x81 0x2502 # | |
136 | 0x82 0x250C # | |
137 | 0x83 0x2510 # | |
138 | 0x84 0x2514 # | |
139 | 0x85 0x2518 # | |
140 | 0x86 0x251C # | |
141 | 0x87 0x2524 # | |
142 | 0x88 0x252C # | |
143 | 0x89 0x2534 # | |
144 | 0x8A 0x253C # | |
145 | 0x8B 0x2580 # | |
146 | 0x8C 0x2584 # | |
147 | 0x8D 0x2588 # | |
148 | 0x8E 0x258C # | |
149 | 0x8F 0x2590 # | |
150 | 0x90 0x2591 # | |
151 | 0x91 0x2592 # | |
152 | 0x92 0x2593 # | |
153 | 0x93 0x2320 # | |
154 | 0x94 0x25A0 # | |
155 | 0x95 0x2219 # | |
156 | 0x96 0x221A # | |
157 | 0x97 0x2248 # | |
158 | 0x98 0x2264 # | |
159 | 0x99 0x2265 # | |
160 | 0x9A 0x00A0 # | |
161 | 0x9B 0x2321 # | |
162 | 0x9C 0x00B0 # | |
163 | 0x9D 0x00B2 # | |
164 | 0x9E 0x00B7 # | |
165 | 0x9F 0x00F7 # | |
166 | 0xA0 0x2550 # | |
167 | 0xA1 0x2551 # | |
168 | 0xA2 0x2552 # | |
169 | 0xA3 0x0451 # | |
170 | 0xA4 0x2553 # | |
171 | 0xA5 0x2554 # | |
172 | 0xA6 0x2555 # | |
173 | 0xA7 0x2556 # | |
174 | 0xA8 0x2557 # | |
175 | 0xA9 0x2558 # | |
176 | 0xAA 0x2559 # | |
177 | 0xAB 0x255A # | |
178 | 0xAC 0x255B # | |
179 | 0xAD 0x255C # | |
180 | 0xAE 0x255D # | |
181 | 0xAF 0x255E # | |
182 | 0xB0 0x255F # | |
183 | 0xB1 0x2560 # | |
184 | 0xB2 0x2561 # | |
185 | 0xB3 0x0401 # | |
186 | 0xB4 0x2562 # | |
187 | 0xB5 0x2563 # | |
188 | 0xB6 0x2564 # | |
189 | 0xB7 0x2565 # | |
190 | 0xB8 0x2566 # | |
191 | 0xB9 0x2567 # | |
192 | 0xBA 0x2568 # | |
193 | 0xBB 0x2569 # | |
194 | 0xBC 0x256A # | |
195 | 0xBD 0x256B # | |
196 | 0xBE 0x256C # | |
197 | 0xBF 0x00A9 # | |
198 | 0xC0 0x044E # | |
199 | 0xC1 0x0430 # | |
200 | 0xC2 0x0431 # | |
201 | 0xC3 0x0446 # | |
202 | 0xC4 0x0434 # | |
203 | 0xC5 0x0435 # | |
204 | 0xC6 0x0444 # | |
205 | 0xC7 0x0433 # | |
206 | 0xC8 0x0445 # | |
207 | 0xC9 0x0438 # | |
208 | 0xCA 0x0439 # | |
209 | 0xCB 0x043A # | |
210 | 0xCC 0x043B # | |
211 | 0xCD 0x043C # | |
212 | 0xCE 0x043D # | |
213 | 0xCF 0x043E # | |
214 | 0xD0 0x043F # | |
215 | 0xD1 0x044F # | |
216 | 0xD2 0x0440 # | |
217 | 0xD3 0x0441 # | |
218 | 0xD4 0x0442 # | |
219 | 0xD5 0x0443 # | |
220 | 0xD6 0x0436 # | |
221 | 0xD7 0x0432 # | |
222 | 0xD8 0x044C # | |
223 | 0xD9 0x044B # | |
224 | 0xDA 0x0437 # | |
225 | 0xDB 0x0448 # | |
226 | 0xDC 0x044D # | |
227 | 0xDD 0x0449 # | |
228 | 0xDE 0x0447 # | |
229 | 0xDF 0x044A # | |
230 | 0xE0 0x042E # | |
231 | 0xE1 0x0410 # | |
232 | 0xE2 0x0411 # | |
233 | 0xE3 0x0426 # | |
234 | 0xE4 0x0414 # | |
235 | 0xE5 0x0415 # | |
236 | 0xE6 0x0424 # | |
237 | 0xE7 0x0413 # | |
238 | 0xE8 0x0425 # | |
239 | 0xE9 0x0418 # | |
240 | 0xEA 0x0419 # | |
241 | 0xEB 0x041A # | |
242 | 0xEC 0x041B # | |
243 | 0xED 0x041C # | |
244 | 0xEE 0x041D # | |
245 | 0xEF 0x041E # | |
246 | 0xF0 0x041F # | |
247 | 0xF1 0x042F # | |
248 | 0xF2 0x0420 # | |
249 | 0xF3 0x0421 # | |
250 | 0xF4 0x0422 # | |
251 | 0xF5 0x0423 # | |
252 | 0xF6 0x0416 # | |
253 | 0xF7 0x0412 # | |
254 | 0xF8 0x042C # | |
255 | 0xF9 0x042B # | |
256 | 0xFA 0x0417 # | |
257 | 0xFB 0x0428 # | |
258 | 0xFC 0x042D # | |
259 | 0xFD 0x0429 # | |
260 | 0xFE 0x0427 # | |
261 | 0xFF 0x042A # | |
262 | 6 | -------------------------------------------- */ |
263 | 7 | |
264 | 8 | |
265 | static const int UNICODE_REPLACEMENT_CHARACTER = 0xFFFD; | |
266 | 9 | static const int CANT_MAP_CHARACTER = 0; |
267 | 10 | |
268 | 11 | static const USHORT to_unicode_map[256] = { |
3 | 3 | |
4 | 4 | Unicode mapping table generated from file cs_koi8u.txt |
5 | 5 | |
6 | 0x00 0x0000 # | |
7 | 0x01 0x0001 # | |
8 | 0x02 0x0002 # | |
9 | 0x03 0x0003 # | |
10 | 0x04 0x0004 # | |
11 | 0x05 0x0005 # | |
12 | 0x06 0x0006 # | |
13 | 0x07 0x0007 # | |
14 | 0x08 0x0008 # | |
15 | 0x09 0x0009 # | |
16 | 0x0A 0x000A # | |
17 | 0x0B 0x000B # | |
18 | 0x0C 0x000C # | |
19 | 0x0D 0x000D # | |
20 | 0x0E 0x000E # | |
21 | 0x0F 0x000F # | |
22 | 0x10 0x0010 # | |
23 | 0x11 0x0011 # | |
24 | 0x12 0x0012 # | |
25 | 0x13 0x0013 # | |
26 | 0x14 0x0014 # | |
27 | 0x15 0x0015 # | |
28 | 0x16 0x0016 # | |
29 | 0x17 0x0017 # | |
30 | 0x18 0x0018 # | |
31 | 0x19 0x0019 # | |
32 | 0x1A 0x001A # | |
33 | 0x1B 0x001B # | |
34 | 0x1C 0x001C # | |
35 | 0x1D 0x001D # | |
36 | 0x1E 0x001E # | |
37 | 0x1F 0x001F # | |
38 | 0x20 0x0020 # | |
39 | 0x21 0x0021 # | |
40 | 0x22 0x0022 # | |
41 | 0x23 0x0023 # | |
42 | 0x24 0x0024 # | |
43 | 0x25 0x0025 # | |
44 | 0x26 0x0026 # | |
45 | 0x27 0x0027 # | |
46 | 0x28 0x0028 # | |
47 | 0x29 0x0029 # | |
48 | 0x2A 0x002A # | |
49 | 0x2B 0x002B # | |
50 | 0x2C 0x002C # | |
51 | 0x2D 0x002D # | |
52 | 0x2E 0x002E # | |
53 | 0x2F 0x002F # | |
54 | 0x30 0x0030 # | |
55 | 0x31 0x0031 # | |
56 | 0x32 0x0032 # | |
57 | 0x33 0x0033 # | |
58 | 0x34 0x0034 # | |
59 | 0x35 0x0035 # | |
60 | 0x36 0x0036 # | |
61 | 0x37 0x0037 # | |
62 | 0x38 0x0038 # | |
63 | 0x39 0x0039 # | |
64 | 0x3A 0x003A # | |
65 | 0x3B 0x003B # | |
66 | 0x3C 0x003C # | |
67 | 0x3D 0x003D # | |
68 | 0x3E 0x003E # | |
69 | 0x3F 0x003F # | |
70 | 0x40 0x0040 # | |
71 | 0x41 0x0041 # | |
72 | 0x42 0x0042 # | |
73 | 0x43 0x0043 # | |
74 | 0x44 0x0044 # | |
75 | 0x45 0x0045 # | |
76 | 0x46 0x0046 # | |
77 | 0x47 0x0047 # | |
78 | 0x48 0x0048 # | |
79 | 0x49 0x0049 # | |
80 | 0x4A 0x004A # | |
81 | 0x4B 0x004B # | |
82 | 0x4C 0x004C # | |
83 | 0x4D 0x004D # | |
84 | 0x4E 0x004E # | |
85 | 0x4F 0x004F # | |
86 | 0x50 0x0050 # | |
87 | 0x51 0x0051 # | |
88 | 0x52 0x0052 # | |
89 | 0x53 0x0053 # | |
90 | 0x54 0x0054 # | |
91 | 0x55 0x0055 # | |
92 | 0x56 0x0056 # | |
93 | 0x57 0x0057 # | |
94 | 0x58 0x0058 # | |
95 | 0x59 0x0059 # | |
96 | 0x5A 0x005A # | |
97 | 0x5B 0x005B # | |
98 | 0x5C 0x005C # | |
99 | 0x5D 0x005D # | |
100 | 0x5E 0x005E # | |
101 | 0x5F 0x005F # | |
102 | 0x60 0x0060 # | |
103 | 0x61 0x0061 # | |
104 | 0x62 0x0062 # | |
105 | 0x63 0x0063 # | |
106 | 0x64 0x0064 # | |
107 | 0x65 0x0065 # | |
108 | 0x66 0x0066 # | |
109 | 0x67 0x0067 # | |
110 | 0x68 0x0068 # | |
111 | 0x69 0x0069 # | |
112 | 0x6A 0x006A # | |
113 | 0x6B 0x006B # | |
114 | 0x6C 0x006C # | |
115 | 0x6D 0x006D # | |
116 | 0x6E 0x006E # | |
117 | 0x6F 0x006F # | |
118 | 0x70 0x0070 # | |
119 | 0x71 0x0071 # | |
120 | 0x72 0x0072 # | |
121 | 0x73 0x0073 # | |
122 | 0x74 0x0074 # | |
123 | 0x75 0x0075 # | |
124 | 0x76 0x0076 # | |
125 | 0x77 0x0077 # | |
126 | 0x78 0x0078 # | |
127 | 0x79 0x0079 # | |
128 | 0x7A 0x007A # | |
129 | 0x7B 0x007B # | |
130 | 0x7C 0x007C # | |
131 | 0x7D 0x007D # | |
132 | 0x7E 0x007E # | |
133 | 0x7F 0x007F # | |
134 | 0x80 0x2500 # | |
135 | 0x81 0x2502 # | |
136 | 0x82 0x250C # | |
137 | 0x83 0x2510 # | |
138 | 0x84 0x2514 # | |
139 | 0x85 0x2518 # | |
140 | 0x86 0x251C # | |
141 | 0x87 0x2524 # | |
142 | 0x88 0x252C # | |
143 | 0x89 0x2534 # | |
144 | 0x8A 0x253C # | |
145 | 0x8B 0x2580 # | |
146 | 0x8C 0x2584 # | |
147 | 0x8D 0x2588 # | |
148 | 0x8E 0x258C # | |
149 | 0x8F 0x2590 # | |
150 | 0x90 0x2591 # | |
151 | 0x91 0x2592 # | |
152 | 0x92 0x2593 # | |
153 | 0x93 0x2320 # | |
154 | 0x94 0x25A0 # | |
155 | 0x95 0x2219 # | |
156 | 0x96 0x221A # | |
157 | 0x97 0x2248 # | |
158 | 0x98 0x2264 # | |
159 | 0x99 0x2265 # | |
160 | 0x9A 0x00A0 # | |
161 | 0x9B 0x2321 # | |
162 | 0x9C 0x00B0 # | |
163 | 0x9D 0x00B2 # | |
164 | 0x9E 0x00B7 # | |
165 | 0x9F 0x00F7 # | |
166 | 0xA0 0x2550 # | |
167 | 0xA1 0x2551 # | |
168 | 0xA2 0x2552 # | |
169 | 0xA3 0x0451 # | |
170 | 0xA4 0x0454 # | |
171 | 0xA5 0x2554 # | |
172 | 0xA6 0x0456 # | |
173 | 0xA7 0x0457 # | |
174 | 0xA8 0x2557 # | |
175 | 0xA9 0x2558 # | |
176 | 0xAA 0x2559 # | |
177 | 0xAB 0x255A # | |
178 | 0xAC 0x255B # | |
179 | 0xAD 0x0491 # | |
180 | 0xAE 0x045E # | |
181 | 0xAF 0x255E # | |
182 | 0xB0 0x255F # | |
183 | 0xB1 0x2560 # | |
184 | 0xB2 0x2561 # | |
185 | 0xB3 0x0401 # | |
186 | 0xB4 0x0404 # | |
187 | 0xB5 0x2563 # | |
188 | 0xB6 0x0406 # | |
189 | 0xB7 0x0407 # | |
190 | 0xB8 0x2566 # | |
191 | 0xB9 0x2567 # | |
192 | 0xBA 0x2568 # | |
193 | 0xBB 0x2569 # | |
194 | 0xBC 0x256A # | |
195 | 0xBD 0x0490 # | |
196 | 0xBE 0x040E # | |
197 | 0xBF 0x00A9 # | |
198 | 0xC0 0x044E # | |
199 | 0xC1 0x0430 # | |
200 | 0xC2 0x0431 # | |
201 | 0xC3 0x0446 # | |
202 | 0xC4 0x0434 # | |
203 | 0xC5 0x0435 # | |
204 | 0xC6 0x0444 # | |
205 | 0xC7 0x0433 # | |
206 | 0xC8 0x0445 # | |
207 | 0xC9 0x0438 # | |
208 | 0xCA 0x0439 # | |
209 | 0xCB 0x043A # | |
210 | 0xCC 0x043B # | |
211 | 0xCD 0x043C # | |
212 | 0xCE 0x043D # | |
213 | 0xCF 0x043E # | |
214 | 0xD0 0x043F # | |
215 | 0xD1 0x044F # | |
216 | 0xD2 0x0440 # | |
217 | 0xD3 0x0441 # | |
218 | 0xD4 0x0442 # | |
219 | 0xD5 0x0443 # | |
220 | 0xD6 0x0436 # | |
221 | 0xD7 0x0432 # | |
222 | 0xD8 0x044C # | |
223 | 0xD9 0x044B # | |
224 | 0xDA 0x0437 # | |
225 | 0xDB 0x0448 # | |
226 | 0xDC 0x044D # | |
227 | 0xDD 0x0449 # | |
228 | 0xDE 0x0447 # | |
229 | 0xDF 0x044A # | |
230 | 0xE0 0x042E # | |
231 | 0xE1 0x0410 # | |
232 | 0xE2 0x0411 # | |
233 | 0xE3 0x0426 # | |
234 | 0xE4 0x0414 # | |
235 | 0xE5 0x0415 # | |
236 | 0xE6 0x0424 # | |
237 | 0xE7 0x0413 # | |
238 | 0xE8 0x0425 # | |
239 | 0xE9 0x0418 # | |
240 | 0xEA 0x0419 # | |
241 | 0xEB 0x041A # | |
242 | 0xEC 0x041B # | |
243 | 0xED 0x041C # | |
244 | 0xEE 0x041D # | |
245 | 0xEF 0x041E # | |
246 | 0xF0 0x041F # | |
247 | 0xF1 0x042F # | |
248 | 0xF2 0x0420 # | |
249 | 0xF3 0x0421 # | |
250 | 0xF4 0x0422 # | |
251 | 0xF5 0x0423 # | |
252 | 0xF6 0x0416 # | |
253 | 0xF7 0x0412 # | |
254 | 0xF8 0x042C # | |
255 | 0xF9 0x042B # | |
256 | 0xFA 0x0417 # | |
257 | 0xFB 0x0428 # | |
258 | 0xFC 0x042D # | |
259 | 0xFD 0x0429 # | |
260 | 0xFE 0x0427 # | |
261 | 0xFF 0x042A # | |
262 | 6 | -------------------------------------------- */ |
263 | 7 | |
264 | 8 |
3 | 3 | |
4 | 4 | Unicode mapping table generated from file asia/KSC/KSC5601.TXT |
5 | 5 | |
6 | # | |
7 | 6 | # Name: Unified Hangeul(KSC5601-1992) to Unicode table |
8 | 7 | # Unicode version: 2.0 |
9 | 8 | # Table version: 1.0 |
10 | 9 | # Table format: Format A |
11 | 10 | # Date: 07/24/95 |
12 | # Authors: Lori Hoerth <lorih@microsoft.com> | |
13 | # K.D.Chang <a-kchang@microsoft.com> | |
14 | # General notes: none | |
15 | # | |
16 | 11 | |
17 | 12 | * The contents of this file are subject to the Interbase Public |
18 | 13 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from file NEXTSTEP.TXT |
4 | 4 | |
5 | # | |
6 | 5 | # Name: NextStep Encoding to Unicode |
7 | 6 | # Unicode version: 1.1 |
8 | 7 | # Table version: 0.1 |
9 | 8 | # Table format: Format A |
10 | 9 | # Date: 14 February 1995 |
11 | # Authors: Rick McGowan (rick@unicode.org) | |
12 | # | |
13 | # | |
14 | # This file is provided as-is by Unicode, Inc. (The Unicode Consortium). | |
15 | # No claims are made as to fitness for any particular purpose. No | |
16 | # warranties of any kind are expressed or implied. The recipient | |
17 | # agrees to determine applicability of information provided. If this | |
18 | # file has been provided on magnetic media by Unicode, Inc., the sole | |
19 | # remedy for any claim will be exchange of defective media within 90 | |
20 | # days of receipt. | |
21 | # | |
22 | # Recipient is granted the right to make copies in any form for | |
23 | # internal distribution and to freely use the information supplied | |
24 | # in the creation of products supporting Unicode. Unicode, Inc. | |
25 | # specifically excludes the right to re-distribute this file directly | |
26 | # to third parties or other organizations whether for profit or not. | |
27 | # | |
28 | # General notes: | |
29 | # | |
30 | # This table contains the data the Unicode Consortium has on how | |
31 | # NextStep Encoding characters map into Unicode. Since the first | |
32 | # 128 characters (0x0 - 0x7f) are identical to ASCII and Unicode, | |
33 | # this table only maps the NextStep range from 0x80 - 0xFF. | |
34 | # | |
35 | # Format: Three tab-separated columns | |
36 | # Column #1 is the NextStep code (in hex as 0xXX) | |
37 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
38 | # Column #3 NextStep name, Unicode name (follows a comment sign, '#') | |
39 | # | |
40 | # The entries are in NextStep order | |
41 | # | |
42 | # Any comments or problems, contact rick@unicode.org | |
43 | # | |
44 | 0x00 0x0000 #NULL | |
45 | 0x01 0x0001 #START OF HEADING | |
46 | 0x02 0x0002 #START OF TEXT | |
47 | 0x03 0x0003 #END OF TEXT | |
48 | 0x04 0x0004 #END OF TRANSMISSION | |
49 | 0x05 0x0005 #ENQUIRY | |
50 | 0x06 0x0006 #ACKNOWLEDGE | |
51 | 0x07 0x0007 #BELL | |
52 | 0x08 0x0008 #BACKSPACE | |
53 | 0x09 0x0009 #HORIZONTAL TABULATION | |
54 | 0x0a 0x000a #LINE FEED | |
55 | 0x0b 0x000b #VERTICAL TABULATION | |
56 | 0x0c 0x000c #FORM FEED | |
57 | 0x0d 0x000d #CARRIAGE RETURN | |
58 | 0x0e 0x000e #SHIFT OUT | |
59 | 0x0f 0x000f #SHIFT IN | |
60 | 0x10 0x0010 #DATA LINK ESCAPE | |
61 | 0x11 0x0011 #DEVICE CONTROL ONE | |
62 | 0x12 0x0012 #DEVICE CONTROL TWO | |
63 | 0x13 0x0013 #DEVICE CONTROL THREE | |
64 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
65 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
66 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
67 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
68 | 0x18 0x0018 #CANCEL | |
69 | 0x19 0x0019 #END OF MEDIUM | |
70 | 0x1a 0x001a #SUBSTITUTE | |
71 | 0x1b 0x001b #ESCAPE | |
72 | 0x1c 0x001c #FILE SEPARATOR | |
73 | 0x1d 0x001d #GROUP SEPARATOR | |
74 | 0x1e 0x001e #RECORD SEPARATOR | |
75 | 0x1f 0x001f #UNIT SEPARATOR | |
76 | 0x20 0x0020 #SPACE | |
77 | 0x21 0x0021 #EXCLAMATION MARK | |
78 | 0x22 0x0022 #QUOTATION MARK | |
79 | 0x23 0x0023 #NUMBER SIGN | |
80 | 0x24 0x0024 #DOLLAR SIGN | |
81 | 0x25 0x0025 #PERCENT SIGN | |
82 | 0x26 0x0026 #AMPERSAND | |
83 | 0x27 0x0027 #APOSTROPHE | |
84 | 0x28 0x0028 #LEFT PARENTHESIS | |
85 | 0x29 0x0029 #RIGHT PARENTHESIS | |
86 | 0x2a 0x002a #ASTERISK | |
87 | 0x2b 0x002b #PLUS SIGN | |
88 | 0x2c 0x002c #COMMA | |
89 | 0x2d 0x002d #HYPHEN-MINUS | |
90 | 0x2e 0x002e #FULL STOP | |
91 | 0x2f 0x002f #SOLIDUS | |
92 | 0x30 0x0030 #DIGIT ZERO | |
93 | 0x31 0x0031 #DIGIT ONE | |
94 | 0x32 0x0032 #DIGIT TWO | |
95 | 0x33 0x0033 #DIGIT THREE | |
96 | 0x34 0x0034 #DIGIT FOUR | |
97 | 0x35 0x0035 #DIGIT FIVE | |
98 | 0x36 0x0036 #DIGIT SIX | |
99 | 0x37 0x0037 #DIGIT SEVEN | |
100 | 0x38 0x0038 #DIGIT EIGHT | |
101 | 0x39 0x0039 #DIGIT NINE | |
102 | 0x3a 0x003a #COLON | |
103 | 0x3b 0x003b #SEMICOLON | |
104 | 0x3c 0x003c #LESS-THAN SIGN | |
105 | 0x3d 0x003d #EQUALS SIGN | |
106 | 0x3e 0x003e #GREATER-THAN SIGN | |
107 | 0x3f 0x003f #QUESTION MARK | |
108 | 0x40 0x0040 #COMMERCIAL AT | |
109 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
110 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
111 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
112 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
113 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
114 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
115 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
116 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
117 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
118 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
119 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
120 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
121 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
122 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
123 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
124 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
125 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
126 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
127 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
128 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
129 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
130 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
131 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
132 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
133 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
134 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
135 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
136 | 0x5c 0x005c #REVERSE SOLIDUS | |
137 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
138 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
139 | 0x5f 0x005f #LOW LINE | |
140 | 0x60 0x0060 #GRAVE ACCENT | |
141 | 0x61 0x0061 #LATIN SMALL LETTER A | |
142 | 0x62 0x0062 #LATIN SMALL LETTER B | |
143 | 0x63 0x0063 #LATIN SMALL LETTER C | |
144 | 0x64 0x0064 #LATIN SMALL LETTER D | |
145 | 0x65 0x0065 #LATIN SMALL LETTER E | |
146 | 0x66 0x0066 #LATIN SMALL LETTER F | |
147 | 0x67 0x0067 #LATIN SMALL LETTER G | |
148 | 0x68 0x0068 #LATIN SMALL LETTER H | |
149 | 0x69 0x0069 #LATIN SMALL LETTER I | |
150 | 0x6a 0x006a #LATIN SMALL LETTER J | |
151 | 0x6b 0x006b #LATIN SMALL LETTER K | |
152 | 0x6c 0x006c #LATIN SMALL LETTER L | |
153 | 0x6d 0x006d #LATIN SMALL LETTER M | |
154 | 0x6e 0x006e #LATIN SMALL LETTER N | |
155 | 0x6f 0x006f #LATIN SMALL LETTER O | |
156 | 0x70 0x0070 #LATIN SMALL LETTER P | |
157 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
158 | 0x72 0x0072 #LATIN SMALL LETTER R | |
159 | 0x73 0x0073 #LATIN SMALL LETTER S | |
160 | 0x74 0x0074 #LATIN SMALL LETTER T | |
161 | 0x75 0x0075 #LATIN SMALL LETTER U | |
162 | 0x76 0x0076 #LATIN SMALL LETTER V | |
163 | 0x77 0x0077 #LATIN SMALL LETTER W | |
164 | 0x78 0x0078 #LATIN SMALL LETTER X | |
165 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
166 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
167 | 0x7b 0x007b #LEFT CURLY BRACKET | |
168 | 0x7c 0x007c #VERTICAL LINE | |
169 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
170 | 0x7e 0x007e #TILDE | |
171 | 0x7f 0x007f #DELETE | |
172 | 0x80 0x00a0 # NO-BREAK SPACE | |
173 | 0x81 0x00c0 # LATIN CAPITAL LETTER A WITH GRAVE | |
174 | 0x82 0x00c1 # LATIN CAPITAL LETTER A WITH ACUTE | |
175 | 0x83 0x00c2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
176 | 0x84 0x00c3 # LATIN CAPITAL LETTER A WITH TILDE | |
177 | 0x85 0x00c4 # LATIN CAPITAL LETTER A WITH DIAERESIS | |
178 | 0x86 0x00c5 # LATIN CAPITAL LETTER A WITH RING | |
179 | 0x87 0x00c7 # LATIN CAPITAL LETTER C WITH CEDILLA | |
180 | 0x88 0x00c8 # LATIN CAPITAL LETTER E WITH GRAVE | |
181 | 0x89 0x00c9 # LATIN CAPITAL LETTER E WITH ACUTE | |
182 | 0x8a 0x00ca # LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
183 | 0x8b 0x00cb # LATIN CAPITAL LETTER E WITH DIAERESIS | |
184 | 0x8c 0x00cc # LATIN CAPITAL LETTER I WITH GRAVE | |
185 | 0x8d 0x00cd # LATIN CAPITAL LETTER I WITH ACUTE | |
186 | 0x8e 0x00ce # LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
187 | 0x8f 0x00cf # LATIN CAPITAL LETTER I WITH DIAERESIS | |
188 | 0x90 0x00d0 # LATIN CAPITAL LETTER ETH | |
189 | 0x91 0x00d1 # LATIN CAPITAL LETTER N WITH TILDE | |
190 | 0x92 0x00d2 # LATIN CAPITAL LETTER O WITH GRAVE | |
191 | 0x93 0x00d3 # LATIN CAPITAL LETTER O WITH ACUTE | |
192 | 0x94 0x00d4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
193 | 0x95 0x00d5 # LATIN CAPITAL LETTER O WITH TILDE | |
194 | 0x96 0x00d6 # LATIN CAPITAL LETTER O WITH DIAERESIS | |
195 | 0x97 0x00d9 # LATIN CAPITAL LETTER U WITH GRAVE | |
196 | 0x98 0x00da # LATIN CAPITAL LETTER U WITH ACUTE | |
197 | 0x99 0x00db # LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
198 | 0x9a 0x00dc # LATIN CAPITAL LETTER U WITH DIAERESIS | |
199 | 0x9b 0x00dd # LATIN CAPITAL LETTER Y WITH ACUTE | |
200 | 0x9c 0x00de # LATIN CAPITAL LETTER THORN | |
201 | 0x9d 0x00b5 # MICRO SIGN | |
202 | 0x9e 0x00d7 # MULTIPLICATION SIGN | |
203 | 0x9f 0x00f7 # DIVISION SIGN | |
204 | 0xa0 0x00a9 # COPYRIGHT SIGN | |
205 | 0xa1 0x00a1 # INVERTED EXCLAMATION MARK | |
206 | 0xa2 0x00a2 # CENT SIGN | |
207 | 0xa3 0x00a3 # POUND SIGN | |
208 | 0xa4 0x2044 # FRACTION SLASH | |
209 | 0xa5 0x00a5 # YEN SIGN | |
210 | 0xa6 0x0192 # LATIN SMALL LETTER F WITH HOOK | |
211 | 0xa7 0x00a7 # SECTION SIGN | |
212 | 0xa8 0x00a4 # CURRENCY SIGN | |
213 | 0xa9 0x2019 # RIGHT SINGLE QUOTATION MARK | |
214 | 0xaa 0x201c # LEFT DOUBLE QUOTATION MARK | |
215 | 0xab 0x00ab # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
216 | 0xac 0x2039 # LATIN SMALL LETTER | |
217 | 0xad 0x203a # LATIN SMALL LETTER | |
218 | 0xae 0xfb01 # LATIN SMALL LIGATURE FI | |
219 | 0xaf 0xfb02 # LATIN SMALL LIGATURE FL | |
220 | 0xb0 0x00ae # REGISTERED SIGN | |
221 | 0xb1 0x2013 # EN DASH | |
222 | 0xb2 0x2020 # DAGGER | |
223 | 0xb3 0x2021 # DOUBLE DAGGER | |
224 | 0xb4 0x00b7 # MIDDLE DOT | |
225 | 0xb5 0x00a6 # BROKEN BAR | |
226 | 0xb6 0x00b6 # PILCROW SIGN | |
227 | 0xb7 0x2022 # BULLET | |
228 | 0xb8 0x201a # SINGLE LOW-9 QUOTATION MARK | |
229 | 0xb9 0x201e # DOUBLE LOW-9 QUOTATION MARK | |
230 | 0xba 0x201d # RIGHT DOUBLE QUOTATION MARK | |
231 | 0xbb 0x00bb # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
232 | 0xbc 0x2026 # HORIZONTAL ELLIPSIS | |
233 | 0xbd 0x2030 # PER MILLE SIGN | |
234 | 0xbe 0x00ac # NOT SIGN | |
235 | 0xbf 0x00bf # INVERTED QUESTION MARK | |
236 | 0xc0 0x00b9 # SUPERSCRIPT ONE | |
237 | 0xc1 0x02cb # MODIFIER LETTER GRAVE ACCENT | |
238 | 0xc2 0x00b4 # ACUTE ACCENT | |
239 | 0xc3 0x02c6 # MODIFIER LETTER CIRCUMFLEX ACCENT | |
240 | 0xc4 0x02dc # SMALL TILDE | |
241 | 0xc5 0x00af # MACRON | |
242 | 0xc6 0x02d8 # BREVE | |
243 | 0xc7 0x02d9 # DOT ABOVE | |
244 | 0xc8 0x00a8 # DIAERESIS | |
245 | 0xc9 0x00b2 # SUPERSCRIPT TWO | |
246 | 0xca 0x02da # RING ABOVE | |
247 | 0xcb 0x00b8 # CEDILLA | |
248 | 0xcc 0x00b3 # SUPERSCRIPT THREE | |
249 | 0xcd 0x02dd # DOUBLE ACUTE ACCENT | |
250 | 0xce 0x02db # OGONEK | |
251 | 0xcf 0x02c7 # CARON | |
252 | 0xd0 0x2014 # EM DASH | |
253 | 0xd1 0x00b1 # PLUS-MINUS SIGN | |
254 | 0xd2 0x00bc # VULGAR FRACTION ONE QUARTER | |
255 | 0xd3 0x00bd # VULGAR FRACTION ONE HALF | |
256 | 0xd4 0x00be # VULGAR FRACTION THREE QUARTERS | |
257 | 0xd5 0x00e0 # LATIN SMALL LETTER A WITH GRAVE | |
258 | 0xd6 0x00e1 # LATIN SMALL LETTER A WITH ACUTE | |
259 | 0xd7 0x00e2 # LATIN SMALL LETTER A WITH CIRCUMFLEX | |
260 | 0xd8 0x00e3 # LATIN SMALL LETTER A WITH TILDE | |
261 | 0xd9 0x00e4 # LATIN SMALL LETTER A WITH DIAERESIS | |
262 | 0xda 0x00e5 # LATIN SMALL LETTER A WITH RING ABOVE | |
263 | 0xdb 0x00e7 # LATIN SMALL LETTER C WITH CEDILLA | |
264 | 0xdc 0x00e8 # LATIN SMALL LETTER E WITH GRAVE | |
265 | 0xdd 0x00e9 # LATIN SMALL LETTER E WITH ACUTE | |
266 | 0xde 0x00ea # LATIN SMALL LETTER E WITH CIRCUMFLEX | |
267 | 0xdf 0x00eb # LATIN SMALL LETTER E WITH DIAERESIS | |
268 | 0xe0 0x00ec # LATIN SMALL LETTER I WITH GRAVE | |
269 | 0xe1 0x00c6 # LATIN CAPITAL LETTER AE | |
270 | 0xe2 0x00ed # LATIN SMALL LETTER I WITH ACUTE | |
271 | 0xe3 0x00aa # FEMININE ORDINAL INDICATOR | |
272 | 0xe4 0x00ee # LATIN SMALL LETTER I WITH CIRCUMFLEX | |
273 | 0xe5 0x00ef # LATIN SMALL LETTER I WITH DIAERESIS | |
274 | 0xe6 0x00f0 # LATIN SMALL LETTER ETH | |
275 | 0xe7 0x00f1 # LATIN SMALL LETTER N WITH TILDE | |
276 | 0xe8 0x0141 # LATIN CAPITAL LETTER L WITH STROKE | |
277 | 0xe9 0x00d8 # LATIN CAPITAL LETTER O WITH STROKE | |
278 | 0xea 0x0152 # LATIN CAPITAL LIGATURE OE | |
279 | 0xeb 0x00ba # MASCULINE ORDINAL INDICATOR | |
280 | 0xec 0x00f2 # LATIN SMALL LETTER O WITH GRAVE | |
281 | 0xed 0x00f3 # LATIN SMALL LETTER O WITH ACUTE | |
282 | 0xee 0x00f4 # LATIN SMALL LETTER O WITH CIRCUMFLEX | |
283 | 0xef 0x00f5 # LATIN SMALL LETTER O WITH TILDE | |
284 | 0xf0 0x00f6 # LATIN SMALL LETTER O WITH DIAERESIS | |
285 | 0xf1 0x00e6 # LATIN SMALL LETTER AE | |
286 | 0xf2 0x00f9 # LATIN SMALL LETTER U WITH GRAVE | |
287 | 0xf3 0x00fa # LATIN SMALL LETTER U WITH ACUTE | |
288 | 0xf4 0x00fb # LATIN SMALL LETTER U WITH CIRCUMFLEX | |
289 | 0xf5 0x0131 # LATIN SMALL LETTER DOTLESS I | |
290 | 0xf6 0x00fc # LATIN SMALL LETTER U WITH DIAERESIS | |
291 | 0xf7 0x00fd # LATIN SMALL LETTER Y WITH ACUTE | |
292 | 0xf8 0x0142 # LATIN SMALL LETTER L WITH STROKE | |
293 | 0xf9 0x00f8 # LATIN SMALL LETTER O WITH STROKE | |
294 | 0xfa 0x0153 # LATIN SMALL LIGATURE OE | |
295 | 0xfb 0x00df # LATIN SMALL LETTER SHARP S | |
296 | 0xfc 0x00fe # LATIN SMALL LETTER THORN | |
297 | 0xfd 0x00ff # LATIN SMALL LETTER Y WITH DIAERESIS | |
298 | 0xfe 0xfffd # .notdef, REPLACEMENT CHARACTER | |
299 | 0xff 0xfffd # .notdef, REPLACEMENT CHARACTER | |
10 | ||
300 | 11 | * The contents of this file are subject to the Interbase Public |
301 | 12 | * License Version 1.0 (the "License"); you may not use this file |
302 | 13 | * except in compliance with the License. You may obtain a copy |
3 | 3 | |
4 | 4 | Unicode mapping table generated from file SHIFTJIS.TXT |
5 | 5 | |
6 | # | |
7 | 6 | # --- This is a trunctated version of the SHIFTJIS.TXT file |
8 | 7 | # --- Provided by Unicode, Inc. This version contains only |
9 | 8 | # --- The shift-JIS codes in 0x80 .. 0xFF which are not also |
10 | 9 | # --- part of JIS (eg: the half-width Katakana) |
11 | 10 | # --- David B. Schnepper |
12 | ||
13 | 11 | # |
14 | 12 | # Name: Shift-JIS to Unicode |
15 | 13 | # Unicode version: 1.1 |
16 | 14 | # Table version: 0.9 |
17 | 15 | # Table format: Format A |
18 | 16 | # Date: 8 March 1994 |
19 | # Authors: Glenn Adams <glenn@metis.com> | |
20 | # John H. Jenkins <John_Jenkins@taligent.com> | |
21 | # | |
22 | # | |
23 | # This file is provided as-is by Unicode, Inc. (The Unicode Consortium). | |
24 | # No claims are made as to fitness for any particular purpose. No | |
25 | # warranties of any kind are expressed or implied. The recipient | |
26 | # agrees to determine applicability of information provided. If this | |
27 | # file has been provided on magnetic media by Unicode, Inc., the sole | |
28 | # remedy for any claim will be exchange of defective media within 90 | |
29 | # days of receipt. | |
30 | # | |
31 | # Recipient is granted the right to make copies in any form for | |
32 | # internal distribution and to freely use the information supplied | |
33 | # in the creation of products supporting Unicode. Unicode, Inc. | |
34 | # specifically excludes the right to re-distribute this file directly | |
35 | # to third parties or other organizations whether for profit or not. | |
36 | # | |
37 | # General notes: | |
38 | # | |
39 | # This table contains the data the Unicode Consortium has on how | |
40 | # Shift-JIS (a combination of JIS 0201 and JIS 0208) maps into Unicode. | |
41 | # | |
42 | # Format: Three tab-separated columns | |
43 | # Column #1 is the shift-JIS code (in hex) | |
44 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
45 | # Column #3 the Unicode name (follows a comment sign, '#') | |
46 | # The official names for Unicode characters U+4E00 | |
47 | # to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX", | |
48 | # where XXXX is the code point. Including all these | |
49 | # names in this file increases its size substantially | |
50 | # and needlessly. The token "<CJK>" is used for the | |
51 | # name of these characters. If necessary, it can be | |
52 | # expanded algorithmically by a parser or editor. | |
53 | # | |
54 | # The entries are ordered by their Shift-JIS codes as follows: | |
55 | # Single-byte characters precede double-byte characters | |
56 | # The single-byte and double-byte blocks are in ascending | |
57 | # hexadecimal order | |
58 | # There is an alternative order some people might be preferred, | |
59 | # where all the entries are in order of the top (or only) byte. | |
60 | # This alternate order can be generated from the one given here | |
61 | # by a simple sort. | |
62 | # | |
63 | # The kanji mappings are a normative part of ISO/IEC 10646. The | |
64 | # non-kanji mappings are provisional, pending definition of | |
65 | # official mappings by Japanese standards bodies | |
66 | # | |
67 | # Any comments or problems, contact <John_Jenkins@taligent.com> | |
68 | # | |
69 | # | |
70 | 0x00 0x0000 #NULL | |
71 | 0x01 0x0001 #START OF HEADING | |
72 | 0x02 0x0002 #START OF TEXT | |
73 | 0x03 0x0003 #END OF TEXT | |
74 | 0x04 0x0004 #END OF TRANSMISSION | |
75 | 0x05 0x0005 #ENQUIRY | |
76 | 0x06 0x0006 #ACKNOWLEDGE | |
77 | 0x07 0x0007 #BELL | |
78 | 0x08 0x0008 #BACKSPACE | |
79 | 0x09 0x0009 #HORIZONTAL TABULATION | |
80 | 0x0a 0x000a #LINE FEED | |
81 | 0x0b 0x000b #VERTICAL TABULATION | |
82 | 0x0c 0x000c #FORM FEED | |
83 | 0x0d 0x000d #CARRIAGE RETURN | |
84 | 0x0e 0x000e #SHIFT OUT | |
85 | 0x0f 0x000f #SHIFT IN | |
86 | 0x10 0x0010 #DATA LINK ESCAPE | |
87 | 0x11 0x0011 #DEVICE CONTROL ONE | |
88 | 0x12 0x0012 #DEVICE CONTROL TWO | |
89 | 0x13 0x0013 #DEVICE CONTROL THREE | |
90 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
91 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
92 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
93 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
94 | 0x18 0x0018 #CANCEL | |
95 | 0x19 0x0019 #END OF MEDIUM | |
96 | 0x1a 0x001a #SUBSTITUTE | |
97 | 0x1b 0x001b #ESCAPE | |
98 | 0x1c 0x001c #FILE SEPARATOR | |
99 | 0x1d 0x001d #GROUP SEPARATOR | |
100 | 0x1e 0x001e #RECORD SEPARATOR | |
101 | 0x1f 0x001f #UNIT SEPARATOR | |
102 | # | |
103 | # --- Start of actual lines from SHIFTJIS.TXT | |
104 | # | |
105 | 0x20 0x0020 # SPACE | |
106 | 0x21 0x0021 # EXCLAMATION MARK | |
107 | 0x22 0x0022 # QUOTATION MARK | |
108 | 0x23 0x0023 # NUMBER SIGN | |
109 | 0x24 0x0024 # DOLLAR SIGN | |
110 | 0x25 0x0025 # PERCENT SIGN | |
111 | 0x26 0x0026 # AMPERSAND | |
112 | 0x27 0x0027 # APOSTROPHE | |
113 | 0x28 0x0028 # LEFT PARENTHESIS | |
114 | 0x29 0x0029 # RIGHT PARENTHESIS | |
115 | 0x2A 0x002A # ASTERISK | |
116 | 0x2B 0x002B # PLUS SIGN | |
117 | 0x2C 0x002C # COMMA | |
118 | 0x2D 0x002D # HYPHEN-MINUS | |
119 | 0x2E 0x002E # FULL STOP | |
120 | 0x2F 0x002F # SOLIDUS | |
121 | 0x30 0x0030 # DIGIT ZERO | |
122 | 0x31 0x0031 # DIGIT ONE | |
123 | 0x32 0x0032 # DIGIT TWO | |
124 | 0x33 0x0033 # DIGIT THREE | |
125 | 0x34 0x0034 # DIGIT FOUR | |
126 | 0x35 0x0035 # DIGIT FIVE | |
127 | 0x36 0x0036 # DIGIT SIX | |
128 | 0x37 0x0037 # DIGIT SEVEN | |
129 | 0x38 0x0038 # DIGIT EIGHT | |
130 | 0x39 0x0039 # DIGIT NINE | |
131 | 0x3A 0x003A # COLON | |
132 | 0x3B 0x003B # SEMICOLON | |
133 | 0x3C 0x003C # LESS-THAN SIGN | |
134 | 0x3D 0x003D # EQUALS SIGN | |
135 | 0x3E 0x003E # GREATER-THAN SIGN | |
136 | 0x3F 0x003F # QUESTION MARK | |
137 | 0x40 0x0040 # COMMERCIAL AT | |
138 | 0x41 0x0041 # LATIN CAPITAL LETTER A | |
139 | 0x42 0x0042 # LATIN CAPITAL LETTER B | |
140 | 0x43 0x0043 # LATIN CAPITAL LETTER C | |
141 | 0x44 0x0044 # LATIN CAPITAL LETTER D | |
142 | 0x45 0x0045 # LATIN CAPITAL LETTER E | |
143 | 0x46 0x0046 # LATIN CAPITAL LETTER F | |
144 | 0x47 0x0047 # LATIN CAPITAL LETTER G | |
145 | 0x48 0x0048 # LATIN CAPITAL LETTER H | |
146 | 0x49 0x0049 # LATIN CAPITAL LETTER I | |
147 | 0x4A 0x004A # LATIN CAPITAL LETTER J | |
148 | 0x4B 0x004B # LATIN CAPITAL LETTER K | |
149 | 0x4C 0x004C # LATIN CAPITAL LETTER L | |
150 | 0x4D 0x004D # LATIN CAPITAL LETTER M | |
151 | 0x4E 0x004E # LATIN CAPITAL LETTER N | |
152 | 0x4F 0x004F # LATIN CAPITAL LETTER O | |
153 | 0x50 0x0050 # LATIN CAPITAL LETTER P | |
154 | 0x51 0x0051 # LATIN CAPITAL LETTER Q | |
155 | 0x52 0x0052 # LATIN CAPITAL LETTER R | |
156 | 0x53 0x0053 # LATIN CAPITAL LETTER S | |
157 | 0x54 0x0054 # LATIN CAPITAL LETTER T | |
158 | 0x55 0x0055 # LATIN CAPITAL LETTER U | |
159 | 0x56 0x0056 # LATIN CAPITAL LETTER V | |
160 | 0x57 0x0057 # LATIN CAPITAL LETTER W | |
161 | 0x58 0x0058 # LATIN CAPITAL LETTER X | |
162 | 0x59 0x0059 # LATIN CAPITAL LETTER Y | |
163 | 0x5A 0x005A # LATIN CAPITAL LETTER Z | |
164 | 0x5B 0x005B # LEFT SQUARE BRACKET | |
165 | 0x5C 0x00A5 # YEN SIGN | |
166 | 0x5D 0x005D # RIGHT SQUARE BRACKET | |
167 | 0x5E 0x005E # CIRCUMFLEX ACCENT | |
168 | 0x5F 0x005F # LOW LINE | |
169 | 0x60 0x0060 # GRAVE ACCENT | |
170 | 0x61 0x0061 # LATIN SMALL LETTER A | |
171 | 0x62 0x0062 # LATIN SMALL LETTER B | |
172 | 0x63 0x0063 # LATIN SMALL LETTER C | |
173 | 0x64 0x0064 # LATIN SMALL LETTER D | |
174 | 0x65 0x0065 # LATIN SMALL LETTER E | |
175 | 0x66 0x0066 # LATIN SMALL LETTER F | |
176 | 0x67 0x0067 # LATIN SMALL LETTER G | |
177 | 0x68 0x0068 # LATIN SMALL LETTER H | |
178 | 0x69 0x0069 # LATIN SMALL LETTER I | |
179 | 0x6A 0x006A # LATIN SMALL LETTER J | |
180 | 0x6B 0x006B # LATIN SMALL LETTER K | |
181 | 0x6C 0x006C # LATIN SMALL LETTER L | |
182 | 0x6D 0x006D # LATIN SMALL LETTER M | |
183 | 0x6E 0x006E # LATIN SMALL LETTER N | |
184 | 0x6F 0x006F # LATIN SMALL LETTER O | |
185 | 0x70 0x0070 # LATIN SMALL LETTER P | |
186 | 0x71 0x0071 # LATIN SMALL LETTER Q | |
187 | 0x72 0x0072 # LATIN SMALL LETTER R | |
188 | 0x73 0x0073 # LATIN SMALL LETTER S | |
189 | 0x74 0x0074 # LATIN SMALL LETTER T | |
190 | 0x75 0x0075 # LATIN SMALL LETTER U | |
191 | 0x76 0x0076 # LATIN SMALL LETTER V | |
192 | 0x77 0x0077 # LATIN SMALL LETTER W | |
193 | 0x78 0x0078 # LATIN SMALL LETTER X | |
194 | 0x79 0x0079 # LATIN SMALL LETTER Y | |
195 | 0x7A 0x007A # LATIN SMALL LETTER Z | |
196 | 0x7B 0x007B # LEFT CURLY BRACKET | |
197 | 0x7C 0x007C # VERTICAL LINE | |
198 | 0x7D 0x007D # RIGHT CURLY BRACKET | |
199 | 0x7E 0x203E # OVERLINE | |
200 | # | |
201 | # --- Kanji mappings from SHIFTJIS.TXT removed | |
202 | # | |
203 | 0xA1 0xFF61 # HALFWIDTH IDEOGRAPHIC FULL STOP | |
204 | 0xA2 0xFF62 # HALFWIDTH LEFT CORNER BRACKET | |
205 | 0xA3 0xFF63 # HALFWIDTH RIGHT CORNER BRACKET | |
206 | 0xA4 0xFF64 # HALFWIDTH IDEOGRAPHIC COMMA | |
207 | 0xA5 0xFF65 # HALFWIDTH KATAKANA MIDDLE DOT | |
208 | 0xA6 0xFF66 # HALFWIDTH KATAKANA LETTER WO | |
209 | 0xA7 0xFF67 # HALFWIDTH KATAKANA LETTER SMALL A | |
210 | 0xA8 0xFF68 # HALFWIDTH KATAKANA LETTER SMALL I | |
211 | 0xA9 0xFF69 # HALFWIDTH KATAKANA LETTER SMALL U | |
212 | 0xAA 0xFF6A # HALFWIDTH KATAKANA LETTER SMALL E | |
213 | 0xAB 0xFF6B # HALFWIDTH KATAKANA LETTER SMALL O | |
214 | 0xAC 0xFF6C # HALFWIDTH KATAKANA LETTER SMALL YA | |
215 | 0xAD 0xFF6D # HALFWIDTH KATAKANA LETTER SMALL YU | |
216 | 0xAE 0xFF6E # HALFWIDTH KATAKANA LETTER SMALL YO | |
217 | 0xAF 0xFF6F # HALFWIDTH KATAKANA LETTER SMALL TU | |
218 | 0xB0 0xFF70 # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK | |
219 | 0xB1 0xFF71 # HALFWIDTH KATAKANA LETTER A | |
220 | 0xB2 0xFF72 # HALFWIDTH KATAKANA LETTER I | |
221 | 0xB3 0xFF73 # HALFWIDTH KATAKANA LETTER U | |
222 | 0xB4 0xFF74 # HALFWIDTH KATAKANA LETTER E | |
223 | 0xB5 0xFF75 # HALFWIDTH KATAKANA LETTER O | |
224 | 0xB6 0xFF76 # HALFWIDTH KATAKANA LETTER KA | |
225 | 0xB7 0xFF77 # HALFWIDTH KATAKANA LETTER KI | |
226 | 0xB8 0xFF78 # HALFWIDTH KATAKANA LETTER KU | |
227 | 0xB9 0xFF79 # HALFWIDTH KATAKANA LETTER KE | |
228 | 0xBA 0xFF7A # HALFWIDTH KATAKANA LETTER KO | |
229 | 0xBB 0xFF7B # HALFWIDTH KATAKANA LETTER SA | |
230 | 0xBC 0xFF7C # HALFWIDTH KATAKANA LETTER SI | |
231 | 0xBD 0xFF7D # HALFWIDTH KATAKANA LETTER SU | |
232 | 0xBE 0xFF7E # HALFWIDTH KATAKANA LETTER SE | |
233 | 0xBF 0xFF7F # HALFWIDTH KATAKANA LETTER SO | |
234 | 0xC0 0xFF80 # HALFWIDTH KATAKANA LETTER TA | |
235 | 0xC1 0xFF81 # HALFWIDTH KATAKANA LETTER TI | |
236 | 0xC2 0xFF82 # HALFWIDTH KATAKANA LETTER TU | |
237 | 0xC3 0xFF83 # HALFWIDTH KATAKANA LETTER TE | |
238 | 0xC4 0xFF84 # HALFWIDTH KATAKANA LETTER TO | |
239 | 0xC5 0xFF85 # HALFWIDTH KATAKANA LETTER NA | |
240 | 0xC6 0xFF86 # HALFWIDTH KATAKANA LETTER NI | |
241 | 0xC7 0xFF87 # HALFWIDTH KATAKANA LETTER NU | |
242 | 0xC8 0xFF88 # HALFWIDTH KATAKANA LETTER NE | |
243 | 0xC9 0xFF89 # HALFWIDTH KATAKANA LETTER NO | |
244 | 0xCA 0xFF8A # HALFWIDTH KATAKANA LETTER HA | |
245 | 0xCB 0xFF8B # HALFWIDTH KATAKANA LETTER HI | |
246 | 0xCC 0xFF8C # HALFWIDTH KATAKANA LETTER HU | |
247 | 0xCD 0xFF8D # HALFWIDTH KATAKANA LETTER HE | |
248 | 0xCE 0xFF8E # HALFWIDTH KATAKANA LETTER HO | |
249 | 0xCF 0xFF8F # HALFWIDTH KATAKANA LETTER MA | |
250 | 0xD0 0xFF90 # HALFWIDTH KATAKANA LETTER MI | |
251 | 0xD1 0xFF91 # HALFWIDTH KATAKANA LETTER MU | |
252 | 0xD2 0xFF92 # HALFWIDTH KATAKANA LETTER ME | |
253 | 0xD3 0xFF93 # HALFWIDTH KATAKANA LETTER MO | |
254 | 0xD4 0xFF94 # HALFWIDTH KATAKANA LETTER YA | |
255 | 0xD5 0xFF95 # HALFWIDTH KATAKANA LETTER YU | |
256 | 0xD6 0xFF96 # HALFWIDTH KATAKANA LETTER YO | |
257 | 0xD7 0xFF97 # HALFWIDTH KATAKANA LETTER RA | |
258 | 0xD8 0xFF98 # HALFWIDTH KATAKANA LETTER RI | |
259 | 0xD9 0xFF99 # HALFWIDTH KATAKANA LETTER RU | |
260 | 0xDA 0xFF9A # HALFWIDTH KATAKANA LETTER RE | |
261 | 0xDB 0xFF9B # HALFWIDTH KATAKANA LETTER RO | |
262 | 0xDC 0xFF9C # HALFWIDTH KATAKANA LETTER WA | |
263 | 0xDD 0xFF9D # HALFWIDTH KATAKANA LETTER N | |
264 | 0xDE 0xFF9E # HALFWIDTH KATAKANA VOICED SOUND MARK | |
265 | 0xDF 0xFF9F # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK | |
266 | # | |
267 | # --- Kanji mappings from SHIFTJIS.TXT removed | |
268 | # | |
17 | ||
269 | 18 | * The contents of this file are subject to the Interbase Public |
270 | 19 | * License Version 1.0 (the "License"); you may not use this file |
271 | 20 | * except in compliance with the License. You may obtain a copy |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp1250 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp1250 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp1250 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x20ac #EURO SIGN | |
145 | 0x81 #UNDEFINED | |
146 | 0x82 0x201a #SINGLE LOW-9 QUOTATION MARK | |
147 | 0x83 #UNDEFINED | |
148 | 0x84 0x201e #DOUBLE LOW-9 QUOTATION MARK | |
149 | 0x85 0x2026 #HORIZONTAL ELLIPSIS | |
150 | 0x86 0x2020 #DAGGER | |
151 | 0x87 0x2021 #DOUBLE DAGGER | |
152 | 0x88 #UNDEFINED | |
153 | 0x89 0x2030 #PER MILLE SIGN | |
154 | 0x8a 0x0160 #LATIN CAPITAL LETTER S WITH CARON | |
155 | 0x8b 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK | |
156 | 0x8c 0x015a #LATIN CAPITAL LETTER S WITH ACUTE | |
157 | 0x8d 0x0164 #LATIN CAPITAL LETTER T WITH CARON | |
158 | 0x8e 0x017d #LATIN CAPITAL LETTER Z WITH CARON | |
159 | 0x8f 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE | |
160 | 0x90 #UNDEFINED | |
161 | 0x91 0x2018 #LEFT SINGLE QUOTATION MARK | |
162 | 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK | |
163 | 0x93 0x201c #LEFT DOUBLE QUOTATION MARK | |
164 | 0x94 0x201d #RIGHT DOUBLE QUOTATION MARK | |
165 | 0x95 0x2022 #BULLET | |
166 | 0x96 0x2013 #EN DASH | |
167 | 0x97 0x2014 #EM DASH | |
168 | 0x98 #UNDEFINED | |
169 | 0x99 0x2122 #TRADE MARK SIGN | |
170 | 0x9a 0x0161 #LATIN SMALL LETTER S WITH CARON | |
171 | 0x9b 0x203a #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK | |
172 | 0x9c 0x015b #LATIN SMALL LETTER S WITH ACUTE | |
173 | 0x9d 0x0165 #LATIN SMALL LETTER T WITH CARON | |
174 | 0x9e 0x017e #LATIN SMALL LETTER Z WITH CARON | |
175 | 0x9f 0x017a #LATIN SMALL LETTER Z WITH ACUTE | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x02c7 #CARON | |
178 | 0xa2 0x02d8 #BREVE | |
179 | 0xa3 0x0141 #LATIN CAPITAL LETTER L WITH STROKE | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x02db #OGONEK | |
195 | 0xb3 0x0142 #LATIN SMALL LETTER L WITH STROKE | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x00b8 #CEDILLA | |
201 | 0xb9 0x0105 #LATIN SMALL LETTER A WITH OGONEK | |
202 | 0xba 0x015f #LATIN SMALL LETTER S WITH CEDILLA | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x013d #LATIN CAPITAL LETTER L WITH CARON | |
205 | 0xbd 0x02dd #DOUBLE ACUTE ACCENT | |
206 | 0xbe 0x013e #LATIN SMALL LETTER L WITH CARON | |
207 | 0xbf 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE | |
208 | 0xc0 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE | |
209 | 0xc1 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
210 | 0xc2 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
211 | 0xc3 0x0102 #LATIN CAPITAL LETTER A WITH BREVE | |
212 | 0xc4 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
213 | 0xc5 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE | |
214 | 0xc6 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE | |
215 | 0xc7 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
216 | 0xc8 0x010c #LATIN CAPITAL LETTER C WITH CARON | |
217 | 0xc9 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
218 | 0xca 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK | |
219 | 0xcb 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
220 | 0xcc 0x011a #LATIN CAPITAL LETTER E WITH CARON | |
221 | 0xcd 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
222 | 0xce 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
223 | 0xcf 0x010e #LATIN CAPITAL LETTER D WITH CARON | |
224 | 0xd0 0x0110 #LATIN CAPITAL LETTER D WITH STROKE | |
225 | 0xd1 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE | |
226 | 0xd2 0x0147 #LATIN CAPITAL LETTER N WITH CARON | |
227 | 0xd3 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
228 | 0xd4 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
229 | 0xd5 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE | |
230 | 0xd6 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
231 | 0xd7 0x00d7 #MULTIPLICATION SIGN | |
232 | 0xd8 0x0158 #LATIN CAPITAL LETTER R WITH CARON | |
233 | 0xd9 0x016e #LATIN CAPITAL LETTER U WITH RING ABOVE | |
234 | 0xda 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
235 | 0xdb 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE | |
236 | 0xdc 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
237 | 0xdd 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE | |
238 | 0xde 0x0162 #LATIN CAPITAL LETTER T WITH CEDILLA | |
239 | 0xdf 0x00df #LATIN SMALL LETTER SHARP S | |
240 | 0xe0 0x0155 #LATIN SMALL LETTER R WITH ACUTE | |
241 | 0xe1 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
242 | 0xe2 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
243 | 0xe3 0x0103 #LATIN SMALL LETTER A WITH BREVE | |
244 | 0xe4 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
245 | 0xe5 0x013a #LATIN SMALL LETTER L WITH ACUTE | |
246 | 0xe6 0x0107 #LATIN SMALL LETTER C WITH ACUTE | |
247 | 0xe7 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
248 | 0xe8 0x010d #LATIN SMALL LETTER C WITH CARON | |
249 | 0xe9 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
250 | 0xea 0x0119 #LATIN SMALL LETTER E WITH OGONEK | |
251 | 0xeb 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
252 | 0xec 0x011b #LATIN SMALL LETTER E WITH CARON | |
253 | 0xed 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
254 | 0xee 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
255 | 0xef 0x010f #LATIN SMALL LETTER D WITH CARON | |
256 | 0xf0 0x0111 #LATIN SMALL LETTER D WITH STROKE | |
257 | 0xf1 0x0144 #LATIN SMALL LETTER N WITH ACUTE | |
258 | 0xf2 0x0148 #LATIN SMALL LETTER N WITH CARON | |
259 | 0xf3 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
260 | 0xf4 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
261 | 0xf5 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE | |
262 | 0xf6 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
263 | 0xf7 0x00f7 #DIVISION SIGN | |
264 | 0xf8 0x0159 #LATIN SMALL LETTER R WITH CARON | |
265 | 0xf9 0x016f #LATIN SMALL LETTER U WITH RING ABOVE | |
266 | 0xfa 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
267 | 0xfb 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE | |
268 | 0xfc 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
269 | 0xfd 0x00fd #LATIN SMALL LETTER Y WITH ACUTE | |
270 | 0xfe 0x0163 #LATIN SMALL LETTER T WITH CEDILLA | |
271 | 0xff 0x02d9 #DOT ABOVE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp1251 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp1251 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp1251 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x0402 #CYRILLIC CAPITAL LETTER DJE | |
145 | 0x81 0x0403 #CYRILLIC CAPITAL LETTER GJE | |
146 | 0x82 0x201a #SINGLE LOW-9 QUOTATION MARK | |
147 | 0x83 0x0453 #CYRILLIC SMALL LETTER GJE | |
148 | 0x84 0x201e #DOUBLE LOW-9 QUOTATION MARK | |
149 | 0x85 0x2026 #HORIZONTAL ELLIPSIS | |
150 | 0x86 0x2020 #DAGGER | |
151 | 0x87 0x2021 #DOUBLE DAGGER | |
152 | 0x88 0x20ac #EURO SIGN | |
153 | 0x89 0x2030 #PER MILLE SIGN | |
154 | 0x8a 0x0409 #CYRILLIC CAPITAL LETTER LJE | |
155 | 0x8b 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK | |
156 | 0x8c 0x040a #CYRILLIC CAPITAL LETTER NJE | |
157 | 0x8d 0x040c #CYRILLIC CAPITAL LETTER KJE | |
158 | 0x8e 0x040b #CYRILLIC CAPITAL LETTER TSHE | |
159 | 0x8f 0x040f #CYRILLIC CAPITAL LETTER DZHE | |
160 | 0x90 0x0452 #CYRILLIC SMALL LETTER DJE | |
161 | 0x91 0x2018 #LEFT SINGLE QUOTATION MARK | |
162 | 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK | |
163 | 0x93 0x201c #LEFT DOUBLE QUOTATION MARK | |
164 | 0x94 0x201d #RIGHT DOUBLE QUOTATION MARK | |
165 | 0x95 0x2022 #BULLET | |
166 | 0x96 0x2013 #EN DASH | |
167 | 0x97 0x2014 #EM DASH | |
168 | 0x98 #UNDEFINED | |
169 | 0x99 0x2122 #TRADE MARK SIGN | |
170 | 0x9a 0x0459 #CYRILLIC SMALL LETTER LJE | |
171 | 0x9b 0x203a #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK | |
172 | 0x9c 0x045a #CYRILLIC SMALL LETTER NJE | |
173 | 0x9d 0x045c #CYRILLIC SMALL LETTER KJE | |
174 | 0x9e 0x045b #CYRILLIC SMALL LETTER TSHE | |
175 | 0x9f 0x045f #CYRILLIC SMALL LETTER DZHE | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x040e #CYRILLIC CAPITAL LETTER SHORT U | |
178 | 0xa2 0x045e #CYRILLIC SMALL LETTER SHORT U | |
179 | 0xa3 0x0408 #CYRILLIC CAPITAL LETTER JE | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x0490 #CYRILLIC CAPITAL LETTER GHE WITH UPTURN | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x0401 #CYRILLIC CAPITAL LETTER IO | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x0407 #CYRILLIC CAPITAL LETTER YI | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x0406 #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I | |
195 | 0xb3 0x0456 #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I | |
196 | 0xb4 0x0491 #CYRILLIC SMALL LETTER GHE WITH UPTURN | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x0451 #CYRILLIC SMALL LETTER IO | |
201 | 0xb9 0x2116 #NUMERO SIGN | |
202 | 0xba 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x0458 #CYRILLIC SMALL LETTER JE | |
205 | 0xbd 0x0405 #CYRILLIC CAPITAL LETTER DZE | |
206 | 0xbe 0x0455 #CYRILLIC SMALL LETTER DZE | |
207 | 0xbf 0x0457 #CYRILLIC SMALL LETTER YI | |
208 | 0xc0 0x0410 #CYRILLIC CAPITAL LETTER A | |
209 | 0xc1 0x0411 #CYRILLIC CAPITAL LETTER BE | |
210 | 0xc2 0x0412 #CYRILLIC CAPITAL LETTER VE | |
211 | 0xc3 0x0413 #CYRILLIC CAPITAL LETTER GHE | |
212 | 0xc4 0x0414 #CYRILLIC CAPITAL LETTER DE | |
213 | 0xc5 0x0415 #CYRILLIC CAPITAL LETTER IE | |
214 | 0xc6 0x0416 #CYRILLIC CAPITAL LETTER ZHE | |
215 | 0xc7 0x0417 #CYRILLIC CAPITAL LETTER ZE | |
216 | 0xc8 0x0418 #CYRILLIC CAPITAL LETTER I | |
217 | 0xc9 0x0419 #CYRILLIC CAPITAL LETTER SHORT I | |
218 | 0xca 0x041a #CYRILLIC CAPITAL LETTER KA | |
219 | 0xcb 0x041b #CYRILLIC CAPITAL LETTER EL | |
220 | 0xcc 0x041c #CYRILLIC CAPITAL LETTER EM | |
221 | 0xcd 0x041d #CYRILLIC CAPITAL LETTER EN | |
222 | 0xce 0x041e #CYRILLIC CAPITAL LETTER O | |
223 | 0xcf 0x041f #CYRILLIC CAPITAL LETTER PE | |
224 | 0xd0 0x0420 #CYRILLIC CAPITAL LETTER ER | |
225 | 0xd1 0x0421 #CYRILLIC CAPITAL LETTER ES | |
226 | 0xd2 0x0422 #CYRILLIC CAPITAL LETTER TE | |
227 | 0xd3 0x0423 #CYRILLIC CAPITAL LETTER U | |
228 | 0xd4 0x0424 #CYRILLIC CAPITAL LETTER EF | |
229 | 0xd5 0x0425 #CYRILLIC CAPITAL LETTER HA | |
230 | 0xd6 0x0426 #CYRILLIC CAPITAL LETTER TSE | |
231 | 0xd7 0x0427 #CYRILLIC CAPITAL LETTER CHE | |
232 | 0xd8 0x0428 #CYRILLIC CAPITAL LETTER SHA | |
233 | 0xd9 0x0429 #CYRILLIC CAPITAL LETTER SHCHA | |
234 | 0xda 0x042a #CYRILLIC CAPITAL LETTER HARD SIGN | |
235 | 0xdb 0x042b #CYRILLIC CAPITAL LETTER YERU | |
236 | 0xdc 0x042c #CYRILLIC CAPITAL LETTER SOFT SIGN | |
237 | 0xdd 0x042d #CYRILLIC CAPITAL LETTER E | |
238 | 0xde 0x042e #CYRILLIC CAPITAL LETTER YU | |
239 | 0xdf 0x042f #CYRILLIC CAPITAL LETTER YA | |
240 | 0xe0 0x0430 #CYRILLIC SMALL LETTER A | |
241 | 0xe1 0x0431 #CYRILLIC SMALL LETTER BE | |
242 | 0xe2 0x0432 #CYRILLIC SMALL LETTER VE | |
243 | 0xe3 0x0433 #CYRILLIC SMALL LETTER GHE | |
244 | 0xe4 0x0434 #CYRILLIC SMALL LETTER DE | |
245 | 0xe5 0x0435 #CYRILLIC SMALL LETTER IE | |
246 | 0xe6 0x0436 #CYRILLIC SMALL LETTER ZHE | |
247 | 0xe7 0x0437 #CYRILLIC SMALL LETTER ZE | |
248 | 0xe8 0x0438 #CYRILLIC SMALL LETTER I | |
249 | 0xe9 0x0439 #CYRILLIC SMALL LETTER SHORT I | |
250 | 0xea 0x043a #CYRILLIC SMALL LETTER KA | |
251 | 0xeb 0x043b #CYRILLIC SMALL LETTER EL | |
252 | 0xec 0x043c #CYRILLIC SMALL LETTER EM | |
253 | 0xed 0x043d #CYRILLIC SMALL LETTER EN | |
254 | 0xee 0x043e #CYRILLIC SMALL LETTER O | |
255 | 0xef 0x043f #CYRILLIC SMALL LETTER PE | |
256 | 0xf0 0x0440 #CYRILLIC SMALL LETTER ER | |
257 | 0xf1 0x0441 #CYRILLIC SMALL LETTER ES | |
258 | 0xf2 0x0442 #CYRILLIC SMALL LETTER TE | |
259 | 0xf3 0x0443 #CYRILLIC SMALL LETTER U | |
260 | 0xf4 0x0444 #CYRILLIC SMALL LETTER EF | |
261 | 0xf5 0x0445 #CYRILLIC SMALL LETTER HA | |
262 | 0xf6 0x0446 #CYRILLIC SMALL LETTER TSE | |
263 | 0xf7 0x0447 #CYRILLIC SMALL LETTER CHE | |
264 | 0xf8 0x0448 #CYRILLIC SMALL LETTER SHA | |
265 | 0xf9 0x0449 #CYRILLIC SMALL LETTER SHCHA | |
266 | 0xfa 0x044a #CYRILLIC SMALL LETTER HARD SIGN | |
267 | 0xfb 0x044b #CYRILLIC SMALL LETTER YERU | |
268 | 0xfc 0x044c #CYRILLIC SMALL LETTER SOFT SIGN | |
269 | 0xfd 0x044d #CYRILLIC SMALL LETTER E | |
270 | 0xfe 0x044e #CYRILLIC SMALL LETTER YU | |
271 | 0xff 0x044f #CYRILLIC SMALL LETTER YA | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp1252 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp1252 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp1252 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x20ac #EURO SIGN | |
145 | 0x81 #UNDEFINED | |
146 | 0x82 0x201a #SINGLE LOW-9 QUOTATION MARK | |
147 | 0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
148 | 0x84 0x201e #DOUBLE LOW-9 QUOTATION MARK | |
149 | 0x85 0x2026 #HORIZONTAL ELLIPSIS | |
150 | 0x86 0x2020 #DAGGER | |
151 | 0x87 0x2021 #DOUBLE DAGGER | |
152 | 0x88 0x02c6 #MODIFIER LETTER CIRCUMFLEX ACCENT | |
153 | 0x89 0x2030 #PER MILLE SIGN | |
154 | 0x8a 0x0160 #LATIN CAPITAL LETTER S WITH CARON | |
155 | 0x8b 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK | |
156 | 0x8c 0x0152 #LATIN CAPITAL LIGATURE OE | |
157 | 0x8d #UNDEFINED | |
158 | 0x8e 0x017d #LATIN CAPITAL LETTER Z WITH CARON | |
159 | 0x8f #UNDEFINED | |
160 | 0x90 #UNDEFINED | |
161 | 0x91 0x2018 #LEFT SINGLE QUOTATION MARK | |
162 | 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK | |
163 | 0x93 0x201c #LEFT DOUBLE QUOTATION MARK | |
164 | 0x94 0x201d #RIGHT DOUBLE QUOTATION MARK | |
165 | 0x95 0x2022 #BULLET | |
166 | 0x96 0x2013 #EN DASH | |
167 | 0x97 0x2014 #EM DASH | |
168 | 0x98 0x02dc #SMALL TILDE | |
169 | 0x99 0x2122 #TRADE MARK SIGN | |
170 | 0x9a 0x0161 #LATIN SMALL LETTER S WITH CARON | |
171 | 0x9b 0x203a #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK | |
172 | 0x9c 0x0153 #LATIN SMALL LIGATURE OE | |
173 | 0x9d #UNDEFINED | |
174 | 0x9e 0x017e #LATIN SMALL LETTER Z WITH CARON | |
175 | 0x9f 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x00a1 #INVERTED EXCLAMATION MARK | |
178 | 0xa2 0x00a2 #CENT SIGN | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x00a5 #YEN SIGN | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa 0x00aa #FEMININE ORDINAL INDICATOR | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x00af #MACRON | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x00b8 #CEDILLA | |
201 | 0xb9 0x00b9 #SUPERSCRIPT ONE | |
202 | 0xba 0x00ba #MASCULINE ORDINAL INDICATOR | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x00bc #VULGAR FRACTION ONE QUARTER | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe 0x00be #VULGAR FRACTION THREE QUARTERS | |
207 | 0xbf 0x00bf #INVERTED QUESTION MARK | |
208 | 0xc0 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE | |
209 | 0xc1 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
210 | 0xc2 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
211 | 0xc3 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE | |
212 | 0xc4 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
213 | 0xc5 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
214 | 0xc6 0x00c6 #LATIN CAPITAL LETTER AE | |
215 | 0xc7 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
216 | 0xc8 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE | |
217 | 0xc9 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
218 | 0xca 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
219 | 0xcb 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
220 | 0xcc 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE | |
221 | 0xcd 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
222 | 0xce 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
223 | 0xcf 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS | |
224 | 0xd0 0x00d0 #LATIN CAPITAL LETTER ETH | |
225 | 0xd1 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
226 | 0xd2 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE | |
227 | 0xd3 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
228 | 0xd4 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
229 | 0xd5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
230 | 0xd6 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
231 | 0xd7 0x00d7 #MULTIPLICATION SIGN | |
232 | 0xd8 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
233 | 0xd9 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE | |
234 | 0xda 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
235 | 0xdb 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
236 | 0xdc 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
237 | 0xdd 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE | |
238 | 0xde 0x00de #LATIN CAPITAL LETTER THORN | |
239 | 0xdf 0x00df #LATIN SMALL LETTER SHARP S | |
240 | 0xe0 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
241 | 0xe1 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
242 | 0xe2 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
243 | 0xe3 0x00e3 #LATIN SMALL LETTER A WITH TILDE | |
244 | 0xe4 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
245 | 0xe5 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
246 | 0xe6 0x00e6 #LATIN SMALL LETTER AE | |
247 | 0xe7 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
248 | 0xe8 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
249 | 0xe9 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
250 | 0xea 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
251 | 0xeb 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
252 | 0xec 0x00ec #LATIN SMALL LETTER I WITH GRAVE | |
253 | 0xed 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
254 | 0xee 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
255 | 0xef 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
256 | 0xf0 0x00f0 #LATIN SMALL LETTER ETH | |
257 | 0xf1 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
258 | 0xf2 0x00f2 #LATIN SMALL LETTER O WITH GRAVE | |
259 | 0xf3 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
260 | 0xf4 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
261 | 0xf5 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
262 | 0xf6 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
263 | 0xf7 0x00f7 #DIVISION SIGN | |
264 | 0xf8 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
265 | 0xf9 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
266 | 0xfa 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
267 | 0xfb 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
268 | 0xfc 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
269 | 0xfd 0x00fd #LATIN SMALL LETTER Y WITH ACUTE | |
270 | 0xfe 0x00fe #LATIN SMALL LETTER THORN | |
271 | 0xff 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp1253 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp1253 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp1253 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x20ac #EURO SIGN | |
145 | 0x81 #UNDEFINED | |
146 | 0x82 0x201a #SINGLE LOW-9 QUOTATION MARK | |
147 | 0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
148 | 0x84 0x201e #DOUBLE LOW-9 QUOTATION MARK | |
149 | 0x85 0x2026 #HORIZONTAL ELLIPSIS | |
150 | 0x86 0x2020 #DAGGER | |
151 | 0x87 0x2021 #DOUBLE DAGGER | |
152 | 0x88 #UNDEFINED | |
153 | 0x89 0x2030 #PER MILLE SIGN | |
154 | 0x8a #UNDEFINED | |
155 | 0x8b 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK | |
156 | 0x8c #UNDEFINED | |
157 | 0x8d #UNDEFINED | |
158 | 0x8e #UNDEFINED | |
159 | 0x8f #UNDEFINED | |
160 | 0x90 #UNDEFINED | |
161 | 0x91 0x2018 #LEFT SINGLE QUOTATION MARK | |
162 | 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK | |
163 | 0x93 0x201c #LEFT DOUBLE QUOTATION MARK | |
164 | 0x94 0x201d #RIGHT DOUBLE QUOTATION MARK | |
165 | 0x95 0x2022 #BULLET | |
166 | 0x96 0x2013 #EN DASH | |
167 | 0x97 0x2014 #EM DASH | |
168 | 0x98 #UNDEFINED | |
169 | 0x99 0x2122 #TRADE MARK SIGN | |
170 | 0x9a #UNDEFINED | |
171 | 0x9b 0x203a #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK | |
172 | 0x9c #UNDEFINED | |
173 | 0x9d #UNDEFINED | |
174 | 0x9e #UNDEFINED | |
175 | 0x9f #UNDEFINED | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x0385 #GREEK DIALYTIKA TONOS | |
178 | 0xa2 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x00a5 #YEN SIGN | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa #UNDEFINED | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x2015 #HORIZONTAL BAR | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x0384 #GREEK TONOS | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS | |
201 | 0xb9 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS | |
202 | 0xba 0x038a #GREEK CAPITAL LETTER IOTA WITH TONOS | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x038c #GREEK CAPITAL LETTER OMICRON WITH TONOS | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe 0x038e #GREEK CAPITAL LETTER UPSILON WITH TONOS | |
207 | 0xbf 0x038f #GREEK CAPITAL LETTER OMEGA WITH TONOS | |
208 | 0xc0 0x0390 #GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS | |
209 | 0xc1 0x0391 #GREEK CAPITAL LETTER ALPHA | |
210 | 0xc2 0x0392 #GREEK CAPITAL LETTER BETA | |
211 | 0xc3 0x0393 #GREEK CAPITAL LETTER GAMMA | |
212 | 0xc4 0x0394 #GREEK CAPITAL LETTER DELTA | |
213 | 0xc5 0x0395 #GREEK CAPITAL LETTER EPSILON | |
214 | 0xc6 0x0396 #GREEK CAPITAL LETTER ZETA | |
215 | 0xc7 0x0397 #GREEK CAPITAL LETTER ETA | |
216 | 0xc8 0x0398 #GREEK CAPITAL LETTER THETA | |
217 | 0xc9 0x0399 #GREEK CAPITAL LETTER IOTA | |
218 | 0xca 0x039a #GREEK CAPITAL LETTER KAPPA | |
219 | 0xcb 0x039b #GREEK CAPITAL LETTER LAMDA | |
220 | 0xcc 0x039c #GREEK CAPITAL LETTER MU | |
221 | 0xcd 0x039d #GREEK CAPITAL LETTER NU | |
222 | 0xce 0x039e #GREEK CAPITAL LETTER XI | |
223 | 0xcf 0x039f #GREEK CAPITAL LETTER OMICRON | |
224 | 0xd0 0x03a0 #GREEK CAPITAL LETTER PI | |
225 | 0xd1 0x03a1 #GREEK CAPITAL LETTER RHO | |
226 | 0xd2 #UNDEFINED | |
227 | 0xd3 0x03a3 #GREEK CAPITAL LETTER SIGMA | |
228 | 0xd4 0x03a4 #GREEK CAPITAL LETTER TAU | |
229 | 0xd5 0x03a5 #GREEK CAPITAL LETTER UPSILON | |
230 | 0xd6 0x03a6 #GREEK CAPITAL LETTER PHI | |
231 | 0xd7 0x03a7 #GREEK CAPITAL LETTER CHI | |
232 | 0xd8 0x03a8 #GREEK CAPITAL LETTER PSI | |
233 | 0xd9 0x03a9 #GREEK CAPITAL LETTER OMEGA | |
234 | 0xda 0x03aa #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA | |
235 | 0xdb 0x03ab #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA | |
236 | 0xdc 0x03ac #GREEK SMALL LETTER ALPHA WITH TONOS | |
237 | 0xdd 0x03ad #GREEK SMALL LETTER EPSILON WITH TONOS | |
238 | 0xde 0x03ae #GREEK SMALL LETTER ETA WITH TONOS | |
239 | 0xdf 0x03af #GREEK SMALL LETTER IOTA WITH TONOS | |
240 | 0xe0 0x03b0 #GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS | |
241 | 0xe1 0x03b1 #GREEK SMALL LETTER ALPHA | |
242 | 0xe2 0x03b2 #GREEK SMALL LETTER BETA | |
243 | 0xe3 0x03b3 #GREEK SMALL LETTER GAMMA | |
244 | 0xe4 0x03b4 #GREEK SMALL LETTER DELTA | |
245 | 0xe5 0x03b5 #GREEK SMALL LETTER EPSILON | |
246 | 0xe6 0x03b6 #GREEK SMALL LETTER ZETA | |
247 | 0xe7 0x03b7 #GREEK SMALL LETTER ETA | |
248 | 0xe8 0x03b8 #GREEK SMALL LETTER THETA | |
249 | 0xe9 0x03b9 #GREEK SMALL LETTER IOTA | |
250 | 0xea 0x03ba #GREEK SMALL LETTER KAPPA | |
251 | 0xeb 0x03bb #GREEK SMALL LETTER LAMDA | |
252 | 0xec 0x03bc #GREEK SMALL LETTER MU | |
253 | 0xed 0x03bd #GREEK SMALL LETTER NU | |
254 | 0xee 0x03be #GREEK SMALL LETTER XI | |
255 | 0xef 0x03bf #GREEK SMALL LETTER OMICRON | |
256 | 0xf0 0x03c0 #GREEK SMALL LETTER PI | |
257 | 0xf1 0x03c1 #GREEK SMALL LETTER RHO | |
258 | 0xf2 0x03c2 #GREEK SMALL LETTER FINAL SIGMA | |
259 | 0xf3 0x03c3 #GREEK SMALL LETTER SIGMA | |
260 | 0xf4 0x03c4 #GREEK SMALL LETTER TAU | |
261 | 0xf5 0x03c5 #GREEK SMALL LETTER UPSILON | |
262 | 0xf6 0x03c6 #GREEK SMALL LETTER PHI | |
263 | 0xf7 0x03c7 #GREEK SMALL LETTER CHI | |
264 | 0xf8 0x03c8 #GREEK SMALL LETTER PSI | |
265 | 0xf9 0x03c9 #GREEK SMALL LETTER OMEGA | |
266 | 0xfa 0x03ca #GREEK SMALL LETTER IOTA WITH DIALYTIKA | |
267 | 0xfb 0x03cb #GREEK SMALL LETTER UPSILON WITH DIALYTIKA | |
268 | 0xfc 0x03cc #GREEK SMALL LETTER OMICRON WITH TONOS | |
269 | 0xfd 0x03cd #GREEK SMALL LETTER UPSILON WITH TONOS | |
270 | 0xfe 0x03ce #GREEK SMALL LETTER OMEGA WITH TONOS | |
271 | 0xff #UNDEFINED | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp1254 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp1254 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp1254 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x20ac #EURO SIGN | |
145 | 0x81 #UNDEFINED | |
146 | 0x82 0x201a #SINGLE LOW-9 QUOTATION MARK | |
147 | 0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
148 | 0x84 0x201e #DOUBLE LOW-9 QUOTATION MARK | |
149 | 0x85 0x2026 #HORIZONTAL ELLIPSIS | |
150 | 0x86 0x2020 #DAGGER | |
151 | 0x87 0x2021 #DOUBLE DAGGER | |
152 | 0x88 0x02c6 #MODIFIER LETTER CIRCUMFLEX ACCENT | |
153 | 0x89 0x2030 #PER MILLE SIGN | |
154 | 0x8a 0x0160 #LATIN CAPITAL LETTER S WITH CARON | |
155 | 0x8b 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK | |
156 | 0x8c 0x0152 #LATIN CAPITAL LIGATURE OE | |
157 | 0x8d #UNDEFINED | |
158 | 0x8e #UNDEFINED | |
159 | 0x8f #UNDEFINED | |
160 | 0x90 #UNDEFINED | |
161 | 0x91 0x2018 #LEFT SINGLE QUOTATION MARK | |
162 | 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK | |
163 | 0x93 0x201c #LEFT DOUBLE QUOTATION MARK | |
164 | 0x94 0x201d #RIGHT DOUBLE QUOTATION MARK | |
165 | 0x95 0x2022 #BULLET | |
166 | 0x96 0x2013 #EN DASH | |
167 | 0x97 0x2014 #EM DASH | |
168 | 0x98 0x02dc #SMALL TILDE | |
169 | 0x99 0x2122 #TRADE MARK SIGN | |
170 | 0x9a 0x0161 #LATIN SMALL LETTER S WITH CARON | |
171 | 0x9b 0x203a #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK | |
172 | 0x9c 0x0153 #LATIN SMALL LIGATURE OE | |
173 | 0x9d #UNDEFINED | |
174 | 0x9e #UNDEFINED | |
175 | 0x9f 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x00a1 #INVERTED EXCLAMATION MARK | |
178 | 0xa2 0x00a2 #CENT SIGN | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x00a5 #YEN SIGN | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa 0x00aa #FEMININE ORDINAL INDICATOR | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x00af #MACRON | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x00b8 #CEDILLA | |
201 | 0xb9 0x00b9 #SUPERSCRIPT ONE | |
202 | 0xba 0x00ba #MASCULINE ORDINAL INDICATOR | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x00bc #VULGAR FRACTION ONE QUARTER | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe 0x00be #VULGAR FRACTION THREE QUARTERS | |
207 | 0xbf 0x00bf #INVERTED QUESTION MARK | |
208 | 0xc0 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE | |
209 | 0xc1 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE | |
210 | 0xc2 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
211 | 0xc3 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE | |
212 | 0xc4 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
213 | 0xc5 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
214 | 0xc6 0x00c6 #LATIN CAPITAL LETTER AE | |
215 | 0xc7 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
216 | 0xc8 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE | |
217 | 0xc9 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
218 | 0xca 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
219 | 0xcb 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS | |
220 | 0xcc 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE | |
221 | 0xcd 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE | |
222 | 0xce 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
223 | 0xcf 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS | |
224 | 0xd0 0x011e #LATIN CAPITAL LETTER G WITH BREVE | |
225 | 0xd1 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE | |
226 | 0xd2 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE | |
227 | 0xd3 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
228 | 0xd4 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
229 | 0xd5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
230 | 0xd6 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
231 | 0xd7 0x00d7 #MULTIPLICATION SIGN | |
232 | 0xd8 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
233 | 0xd9 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE | |
234 | 0xda 0x00da #LATIN CAPITAL LETTER U WITH ACUTE | |
235 | 0xdb 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
236 | 0xdc 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
237 | 0xdd 0x0130 #LATIN CAPITAL LETTER I WITH DOT ABOVE | |
238 | 0xde 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA | |
239 | 0xdf 0x00df #LATIN SMALL LETTER SHARP S | |
240 | 0xe0 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
241 | 0xe1 0x00e1 #LATIN SMALL LETTER A WITH ACUTE | |
242 | 0xe2 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
243 | 0xe3 0x00e3 #LATIN SMALL LETTER A WITH TILDE | |
244 | 0xe4 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
245 | 0xe5 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
246 | 0xe6 0x00e6 #LATIN SMALL LETTER AE | |
247 | 0xe7 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
248 | 0xe8 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
249 | 0xe9 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
250 | 0xea 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
251 | 0xeb 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
252 | 0xec 0x00ec #LATIN SMALL LETTER I WITH GRAVE | |
253 | 0xed 0x00ed #LATIN SMALL LETTER I WITH ACUTE | |
254 | 0xee 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
255 | 0xef 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
256 | 0xf0 0x011f #LATIN SMALL LETTER G WITH BREVE | |
257 | 0xf1 0x00f1 #LATIN SMALL LETTER N WITH TILDE | |
258 | 0xf2 0x00f2 #LATIN SMALL LETTER O WITH GRAVE | |
259 | 0xf3 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
260 | 0xf4 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
261 | 0xf5 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
262 | 0xf6 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
263 | 0xf7 0x00f7 #DIVISION SIGN | |
264 | 0xf8 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
265 | 0xf9 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
266 | 0xfa 0x00fa #LATIN SMALL LETTER U WITH ACUTE | |
267 | 0xfb 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
268 | 0xfc 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
269 | 0xfd 0x0131 #LATIN SMALL LETTER DOTLESS I | |
270 | 0xfe 0x015f #LATIN SMALL LETTER S WITH CEDILLA | |
271 | 0xff 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp1255 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp1255 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp1255 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x20ac #EURO SIGN | |
145 | 0x81 #UNDEFINED | |
146 | 0x82 0x201a #SINGLE LOW-9 QUOTATION MARK | |
147 | 0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
148 | 0x84 0x201e #DOUBLE LOW-9 QUOTATION MARK | |
149 | 0x85 0x2026 #HORIZONTAL ELLIPSIS | |
150 | 0x86 0x2020 #DAGGER | |
151 | 0x87 0x2021 #DOUBLE DAGGER | |
152 | 0x88 0x02c6 #MODIFIER LETTER CIRCUMFLEX ACCENT | |
153 | 0x89 0x2030 #PER MILLE SIGN | |
154 | 0x8a #UNDEFINED | |
155 | 0x8b 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK | |
156 | 0x8c #UNDEFINED | |
157 | 0x8d #UNDEFINED | |
158 | 0x8e #UNDEFINED | |
159 | 0x8f #UNDEFINED | |
160 | 0x90 #UNDEFINED | |
161 | 0x91 0x2018 #LEFT SINGLE QUOTATION MARK | |
162 | 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK | |
163 | 0x93 0x201c #LEFT DOUBLE QUOTATION MARK | |
164 | 0x94 0x201d #RIGHT DOUBLE QUOTATION MARK | |
165 | 0x95 0x2022 #BULLET | |
166 | 0x96 0x2013 #EN DASH | |
167 | 0x97 0x2014 #EM DASH | |
168 | 0x98 0x02dc #SMALL TILDE | |
169 | 0x99 0x2122 #TRADE MARK SIGN | |
170 | 0x9a #UNDEFINED | |
171 | 0x9b 0x203a #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK | |
172 | 0x9c #UNDEFINED | |
173 | 0x9d #UNDEFINED | |
174 | 0x9e #UNDEFINED | |
175 | 0x9f #UNDEFINED | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x00a1 #INVERTED EXCLAMATION MARK | |
178 | 0xa2 0x00a2 #CENT SIGN | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x20aa #NEW SHEQEL SIGN | |
181 | 0xa5 0x00a5 #YEN SIGN | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa 0x00d7 #MULTIPLICATION SIGN | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x00af #MACRON | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x00b8 #CEDILLA | |
201 | 0xb9 0x00b9 #SUPERSCRIPT ONE | |
202 | 0xba 0x00f7 #DIVISION SIGN | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x00bc #VULGAR FRACTION ONE QUARTER | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe 0x00be #VULGAR FRACTION THREE QUARTERS | |
207 | 0xbf 0x00bf #INVERTED QUESTION MARK | |
208 | 0xc0 0x05b0 #HEBREW POINT SHEVA | |
209 | 0xc1 0x05b1 #HEBREW POINT HATAF SEGOL | |
210 | 0xc2 0x05b2 #HEBREW POINT HATAF PATAH | |
211 | 0xc3 0x05b3 #HEBREW POINT HATAF QAMATS | |
212 | 0xc4 0x05b4 #HEBREW POINT HIRIQ | |
213 | 0xc5 0x05b5 #HEBREW POINT TSERE | |
214 | 0xc6 0x05b6 #HEBREW POINT SEGOL | |
215 | 0xc7 0x05b7 #HEBREW POINT PATAH | |
216 | 0xc8 0x05b8 #HEBREW POINT QAMATS | |
217 | 0xc9 0x05b9 #HEBREW POINT HOLAM | |
218 | 0xca #UNDEFINED | |
219 | 0xcb 0x05bb #HEBREW POINT QUBUTS | |
220 | 0xcc 0x05bc #HEBREW POINT DAGESH OR MAPIQ | |
221 | 0xcd 0x05bd #HEBREW POINT METEG | |
222 | 0xce 0x05be #HEBREW PUNCTUATION MAQAF | |
223 | 0xcf 0x05bf #HEBREW POINT RAFE | |
224 | 0xd0 0x05c0 #HEBREW PUNCTUATION PASEQ | |
225 | 0xd1 0x05c1 #HEBREW POINT SHIN DOT | |
226 | 0xd2 0x05c2 #HEBREW POINT SIN DOT | |
227 | 0xd3 0x05c3 #HEBREW PUNCTUATION SOF PASUQ | |
228 | 0xd4 0x05f0 #HEBREW LIGATURE YIDDISH DOUBLE VAV | |
229 | 0xd5 0x05f1 #HEBREW LIGATURE YIDDISH VAV YOD | |
230 | 0xd6 0x05f2 #HEBREW LIGATURE YIDDISH DOUBLE YOD | |
231 | 0xd7 0x05f3 #HEBREW PUNCTUATION GERESH | |
232 | 0xd8 0x05f4 #HEBREW PUNCTUATION GERSHAYIM | |
233 | 0xd9 #UNDEFINED | |
234 | 0xda #UNDEFINED | |
235 | 0xdb #UNDEFINED | |
236 | 0xdc #UNDEFINED | |
237 | 0xdd #UNDEFINED | |
238 | 0xde #UNDEFINED | |
239 | 0xdf #UNDEFINED | |
240 | 0xe0 0x05d0 #HEBREW LETTER ALEF | |
241 | 0xe1 0x05d1 #HEBREW LETTER BET | |
242 | 0xe2 0x05d2 #HEBREW LETTER GIMEL | |
243 | 0xe3 0x05d3 #HEBREW LETTER DALET | |
244 | 0xe4 0x05d4 #HEBREW LETTER HE | |
245 | 0xe5 0x05d5 #HEBREW LETTER VAV | |
246 | 0xe6 0x05d6 #HEBREW LETTER ZAYIN | |
247 | 0xe7 0x05d7 #HEBREW LETTER HET | |
248 | 0xe8 0x05d8 #HEBREW LETTER TET | |
249 | 0xe9 0x05d9 #HEBREW LETTER YOD | |
250 | 0xea 0x05da #HEBREW LETTER FINAL KAF | |
251 | 0xeb 0x05db #HEBREW LETTER KAF | |
252 | 0xec 0x05dc #HEBREW LETTER LAMED | |
253 | 0xed 0x05dd #HEBREW LETTER FINAL MEM | |
254 | 0xee 0x05de #HEBREW LETTER MEM | |
255 | 0xef 0x05df #HEBREW LETTER FINAL NUN | |
256 | 0xf0 0x05e0 #HEBREW LETTER NUN | |
257 | 0xf1 0x05e1 #HEBREW LETTER SAMEKH | |
258 | 0xf2 0x05e2 #HEBREW LETTER AYIN | |
259 | 0xf3 0x05e3 #HEBREW LETTER FINAL PE | |
260 | 0xf4 0x05e4 #HEBREW LETTER PE | |
261 | 0xf5 0x05e5 #HEBREW LETTER FINAL TSADI | |
262 | 0xf6 0x05e6 #HEBREW LETTER TSADI | |
263 | 0xf7 0x05e7 #HEBREW LETTER QOF | |
264 | 0xf8 0x05e8 #HEBREW LETTER RESH | |
265 | 0xf9 0x05e9 #HEBREW LETTER SHIN | |
266 | 0xfa 0x05ea #HEBREW LETTER TAV | |
267 | 0xfb #UNDEFINED | |
268 | 0xfc #UNDEFINED | |
269 | 0xfd 0x200e #LEFT-TO-RIGHT MARK | |
270 | 0xfe 0x200f #RIGHT-TO-LEFT MARK | |
271 | 0xff #UNDEFINED | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp1256 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp1256 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp1256 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x20ac #EURO SIGN | |
145 | 0x81 0x067e #ARABIC LETTER PEH | |
146 | 0x82 0x201a #SINGLE LOW-9 QUOTATION MARK | |
147 | 0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
148 | 0x84 0x201e #DOUBLE LOW-9 QUOTATION MARK | |
149 | 0x85 0x2026 #HORIZONTAL ELLIPSIS | |
150 | 0x86 0x2020 #DAGGER | |
151 | 0x87 0x2021 #DOUBLE DAGGER | |
152 | 0x88 0x02c6 #MODIFIER LETTER CIRCUMFLEX ACCENT | |
153 | 0x89 0x2030 #PER MILLE SIGN | |
154 | 0x8a 0x0679 #ARABIC LETTER TTEH | |
155 | 0x8b 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK | |
156 | 0x8c 0x0152 #LATIN CAPITAL LIGATURE OE | |
157 | 0x8d 0x0686 #ARABIC LETTER TCHEH | |
158 | 0x8e 0x0698 #ARABIC LETTER JEH | |
159 | 0x8f 0x0688 #ARABIC LETTER DDAL | |
160 | 0x90 0x06af #ARABIC LETTER GAF | |
161 | 0x91 0x2018 #LEFT SINGLE QUOTATION MARK | |
162 | 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK | |
163 | 0x93 0x201c #LEFT DOUBLE QUOTATION MARK | |
164 | 0x94 0x201d #RIGHT DOUBLE QUOTATION MARK | |
165 | 0x95 0x2022 #BULLET | |
166 | 0x96 0x2013 #EN DASH | |
167 | 0x97 0x2014 #EM DASH | |
168 | 0x98 0x06a9 #ARABIC LETTER KEHEH | |
169 | 0x99 0x2122 #TRADE MARK SIGN | |
170 | 0x9a 0x0691 #ARABIC LETTER RREH | |
171 | 0x9b 0x203a #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK | |
172 | 0x9c 0x0153 #LATIN SMALL LIGATURE OE | |
173 | 0x9d 0x200c #ZERO WIDTH NON-JOINER | |
174 | 0x9e 0x200d #ZERO WIDTH JOINER | |
175 | 0x9f 0x06ba #ARABIC LETTER NOON GHUNNA | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 0x060c #ARABIC COMMA | |
178 | 0xa2 0x00a2 #CENT SIGN | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 0x00a5 #YEN SIGN | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00a8 #DIAERESIS | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa 0x06be #ARABIC LETTER HEH DOACHASHMEE | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x00af #MACRON | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x00b8 #CEDILLA | |
201 | 0xb9 0x00b9 #SUPERSCRIPT ONE | |
202 | 0xba 0x061b #ARABIC SEMICOLON | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x00bc #VULGAR FRACTION ONE QUARTER | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe 0x00be #VULGAR FRACTION THREE QUARTERS | |
207 | 0xbf 0x061f #ARABIC QUESTION MARK | |
208 | 0xc0 0x06c1 #ARABIC LETTER HEH GOAL | |
209 | 0xc1 0x0621 #ARABIC LETTER HAMZA | |
210 | 0xc2 0x0622 #ARABIC LETTER ALEF WITH MADDA ABOVE | |
211 | 0xc3 0x0623 #ARABIC LETTER ALEF WITH HAMZA ABOVE | |
212 | 0xc4 0x0624 #ARABIC LETTER WAW WITH HAMZA ABOVE | |
213 | 0xc5 0x0625 #ARABIC LETTER ALEF WITH HAMZA BELOW | |
214 | 0xc6 0x0626 #ARABIC LETTER YEH WITH HAMZA ABOVE | |
215 | 0xc7 0x0627 #ARABIC LETTER ALEF | |
216 | 0xc8 0x0628 #ARABIC LETTER BEH | |
217 | 0xc9 0x0629 #ARABIC LETTER TEH MARBUTA | |
218 | 0xca 0x062a #ARABIC LETTER TEH | |
219 | 0xcb 0x062b #ARABIC LETTER THEH | |
220 | 0xcc 0x062c #ARABIC LETTER JEEM | |
221 | 0xcd 0x062d #ARABIC LETTER HAH | |
222 | 0xce 0x062e #ARABIC LETTER KHAH | |
223 | 0xcf 0x062f #ARABIC LETTER DAL | |
224 | 0xd0 0x0630 #ARABIC LETTER THAL | |
225 | 0xd1 0x0631 #ARABIC LETTER REH | |
226 | 0xd2 0x0632 #ARABIC LETTER ZAIN | |
227 | 0xd3 0x0633 #ARABIC LETTER SEEN | |
228 | 0xd4 0x0634 #ARABIC LETTER SHEEN | |
229 | 0xd5 0x0635 #ARABIC LETTER SAD | |
230 | 0xd6 0x0636 #ARABIC LETTER DAD | |
231 | 0xd7 0x00d7 #MULTIPLICATION SIGN | |
232 | 0xd8 0x0637 #ARABIC LETTER TAH | |
233 | 0xd9 0x0638 #ARABIC LETTER ZAH | |
234 | 0xda 0x0639 #ARABIC LETTER AIN | |
235 | 0xdb 0x063a #ARABIC LETTER GHAIN | |
236 | 0xdc 0x0640 #ARABIC TATWEEL | |
237 | 0xdd 0x0641 #ARABIC LETTER FEH | |
238 | 0xde 0x0642 #ARABIC LETTER QAF | |
239 | 0xdf 0x0643 #ARABIC LETTER KAF | |
240 | 0xe0 0x00e0 #LATIN SMALL LETTER A WITH GRAVE | |
241 | 0xe1 0x0644 #ARABIC LETTER LAM | |
242 | 0xe2 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
243 | 0xe3 0x0645 #ARABIC LETTER MEEM | |
244 | 0xe4 0x0646 #ARABIC LETTER NOON | |
245 | 0xe5 0x0647 #ARABIC LETTER HEH | |
246 | 0xe6 0x0648 #ARABIC LETTER WAW | |
247 | 0xe7 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA | |
248 | 0xe8 0x00e8 #LATIN SMALL LETTER E WITH GRAVE | |
249 | 0xe9 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
250 | 0xea 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
251 | 0xeb 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS | |
252 | 0xec 0x0649 #ARABIC LETTER ALEF MAKSURA | |
253 | 0xed 0x064a #ARABIC LETTER YEH | |
254 | 0xee 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
255 | 0xef 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS | |
256 | 0xf0 0x064b #ARABIC FATHATAN | |
257 | 0xf1 0x064c #ARABIC DAMMATAN | |
258 | 0xf2 0x064d #ARABIC KASRATAN | |
259 | 0xf3 0x064e #ARABIC FATHA | |
260 | 0xf4 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
261 | 0xf5 0x064f #ARABIC DAMMA | |
262 | 0xf6 0x0650 #ARABIC KASRA | |
263 | 0xf7 0x00f7 #DIVISION SIGN | |
264 | 0xf8 0x0651 #ARABIC SHADDA | |
265 | 0xf9 0x00f9 #LATIN SMALL LETTER U WITH GRAVE | |
266 | 0xfa 0x0652 #ARABIC SUKUN | |
267 | 0xfb 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
268 | 0xfc 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
269 | 0xfd 0x200e #LEFT-TO-RIGHT MARK | |
270 | 0xfe 0x200f #RIGHT-TO-LEFT MARK | |
271 | 0xff 0x06d2 #ARABIC LETTER YEH BARREE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
2 | 2 | |
3 | 3 | Unicode mapping table generated from java mapping and UnicodeData.txt |
4 | 4 | |
5 | # | |
6 | 5 | # Name: Cp1257 to Unicode table |
7 | 6 | # Unicode version: Java 1.3 |
8 | # | |
9 | # Format: Three tab-separated columns | |
10 | # Column #1 is the Cp1257 code (in hex) | |
11 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
12 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
13 | # | |
14 | # The entries are in Cp1257 order | |
15 | # | |
16 | 0x00 0x0000 #NULL | |
17 | 0x01 0x0001 #START OF HEADING | |
18 | 0x02 0x0002 #START OF TEXT | |
19 | 0x03 0x0003 #END OF TEXT | |
20 | 0x04 0x0004 #END OF TRANSMISSION | |
21 | 0x05 0x0005 #ENQUIRY | |
22 | 0x06 0x0006 #ACKNOWLEDGE | |
23 | 0x07 0x0007 #BELL | |
24 | 0x08 0x0008 #BACKSPACE | |
25 | 0x09 0x0009 #CHARACTER TABULATION | |
26 | 0x0a 0x000a #LINE FEED (LF) | |
27 | 0x0b 0x000b #LINE TABULATION | |
28 | 0x0c 0x000c #FORM FEED (FF) | |
29 | 0x0d 0x000d #CARRIAGE RETURN (CR) | |
30 | 0x0e 0x000e #SHIFT OUT | |
31 | 0x0f 0x000f #SHIFT IN | |
32 | 0x10 0x0010 #DATA LINK ESCAPE | |
33 | 0x11 0x0011 #DEVICE CONTROL ONE | |
34 | 0x12 0x0012 #DEVICE CONTROL TWO | |
35 | 0x13 0x0013 #DEVICE CONTROL THREE | |
36 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
37 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
38 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
39 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
40 | 0x18 0x0018 #CANCEL | |
41 | 0x19 0x0019 #END OF MEDIUM | |
42 | 0x1a 0x001a #SUBSTITUTE | |
43 | 0x1b 0x001b #ESCAPE | |
44 | 0x1c 0x001c #INFORMATION SEPARATOR FOUR | |
45 | 0x1d 0x001d #INFORMATION SEPARATOR THREE | |
46 | 0x1e 0x001e #INFORMATION SEPARATOR TWO | |
47 | 0x1f 0x001f #INFORMATION SEPARATOR ONE | |
48 | 0x20 0x0020 #SPACE | |
49 | 0x21 0x0021 #EXCLAMATION MARK | |
50 | 0x22 0x0022 #QUOTATION MARK | |
51 | 0x23 0x0023 #NUMBER SIGN | |
52 | 0x24 0x0024 #DOLLAR SIGN | |
53 | 0x25 0x0025 #PERCENT SIGN | |
54 | 0x26 0x0026 #AMPERSAND | |
55 | 0x27 0x0027 #APOSTROPHE | |
56 | 0x28 0x0028 #LEFT PARENTHESIS | |
57 | 0x29 0x0029 #RIGHT PARENTHESIS | |
58 | 0x2a 0x002a #ASTERISK | |
59 | 0x2b 0x002b #PLUS SIGN | |
60 | 0x2c 0x002c #COMMA | |
61 | 0x2d 0x002d #HYPHEN-MINUS | |
62 | 0x2e 0x002e #FULL STOP | |
63 | 0x2f 0x002f #SOLIDUS | |
64 | 0x30 0x0030 #DIGIT ZERO | |
65 | 0x31 0x0031 #DIGIT ONE | |
66 | 0x32 0x0032 #DIGIT TWO | |
67 | 0x33 0x0033 #DIGIT THREE | |
68 | 0x34 0x0034 #DIGIT FOUR | |
69 | 0x35 0x0035 #DIGIT FIVE | |
70 | 0x36 0x0036 #DIGIT SIX | |
71 | 0x37 0x0037 #DIGIT SEVEN | |
72 | 0x38 0x0038 #DIGIT EIGHT | |
73 | 0x39 0x0039 #DIGIT NINE | |
74 | 0x3a 0x003a #COLON | |
75 | 0x3b 0x003b #SEMICOLON | |
76 | 0x3c 0x003c #LESS-THAN SIGN | |
77 | 0x3d 0x003d #EQUALS SIGN | |
78 | 0x3e 0x003e #GREATER-THAN SIGN | |
79 | 0x3f 0x003f #QUESTION MARK | |
80 | 0x40 0x0040 #COMMERCIAL AT | |
81 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
82 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
83 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
84 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
85 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
86 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
87 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
88 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
89 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
90 | 0x4a 0x004a #LATIN CAPITAL LETTER J | |
91 | 0x4b 0x004b #LATIN CAPITAL LETTER K | |
92 | 0x4c 0x004c #LATIN CAPITAL LETTER L | |
93 | 0x4d 0x004d #LATIN CAPITAL LETTER M | |
94 | 0x4e 0x004e #LATIN CAPITAL LETTER N | |
95 | 0x4f 0x004f #LATIN CAPITAL LETTER O | |
96 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
97 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
98 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
99 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
100 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
101 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
102 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
103 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
104 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
105 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
106 | 0x5a 0x005a #LATIN CAPITAL LETTER Z | |
107 | 0x5b 0x005b #LEFT SQUARE BRACKET | |
108 | 0x5c 0x005c #REVERSE SOLIDUS | |
109 | 0x5d 0x005d #RIGHT SQUARE BRACKET | |
110 | 0x5e 0x005e #CIRCUMFLEX ACCENT | |
111 | 0x5f 0x005f #LOW LINE | |
112 | 0x60 0x0060 #GRAVE ACCENT | |
113 | 0x61 0x0061 #LATIN SMALL LETTER A | |
114 | 0x62 0x0062 #LATIN SMALL LETTER B | |
115 | 0x63 0x0063 #LATIN SMALL LETTER C | |
116 | 0x64 0x0064 #LATIN SMALL LETTER D | |
117 | 0x65 0x0065 #LATIN SMALL LETTER E | |
118 | 0x66 0x0066 #LATIN SMALL LETTER F | |
119 | 0x67 0x0067 #LATIN SMALL LETTER G | |
120 | 0x68 0x0068 #LATIN SMALL LETTER H | |
121 | 0x69 0x0069 #LATIN SMALL LETTER I | |
122 | 0x6a 0x006a #LATIN SMALL LETTER J | |
123 | 0x6b 0x006b #LATIN SMALL LETTER K | |
124 | 0x6c 0x006c #LATIN SMALL LETTER L | |
125 | 0x6d 0x006d #LATIN SMALL LETTER M | |
126 | 0x6e 0x006e #LATIN SMALL LETTER N | |
127 | 0x6f 0x006f #LATIN SMALL LETTER O | |
128 | 0x70 0x0070 #LATIN SMALL LETTER P | |
129 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
130 | 0x72 0x0072 #LATIN SMALL LETTER R | |
131 | 0x73 0x0073 #LATIN SMALL LETTER S | |
132 | 0x74 0x0074 #LATIN SMALL LETTER T | |
133 | 0x75 0x0075 #LATIN SMALL LETTER U | |
134 | 0x76 0x0076 #LATIN SMALL LETTER V | |
135 | 0x77 0x0077 #LATIN SMALL LETTER W | |
136 | 0x78 0x0078 #LATIN SMALL LETTER X | |
137 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
138 | 0x7a 0x007a #LATIN SMALL LETTER Z | |
139 | 0x7b 0x007b #LEFT CURLY BRACKET | |
140 | 0x7c 0x007c #VERTICAL LINE | |
141 | 0x7d 0x007d #RIGHT CURLY BRACKET | |
142 | 0x7e 0x007e #TILDE | |
143 | 0x7f 0x007f #DELETE | |
144 | 0x80 0x20ac #EURO SIGN | |
145 | 0x81 #UNDEFINED | |
146 | 0x82 0x201a #SINGLE LOW-9 QUOTATION MARK | |
147 | 0x83 #UNDEFINED | |
148 | 0x84 0x201e #DOUBLE LOW-9 QUOTATION MARK | |
149 | 0x85 0x2026 #HORIZONTAL ELLIPSIS | |
150 | 0x86 0x2020 #DAGGER | |
151 | 0x87 0x2021 #DOUBLE DAGGER | |
152 | 0x88 #UNDEFINED | |
153 | 0x89 0x2030 #PER MILLE SIGN | |
154 | 0x8a #UNDEFINED | |
155 | 0x8b 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK | |
156 | 0x8c #UNDEFINED | |
157 | 0x8d 0x00a8 #DIAERESIS | |
158 | 0x8e 0x02c7 #CARON | |
159 | 0x8f 0x00b8 #CEDILLA | |
160 | 0x90 #UNDEFINED | |
161 | 0x91 0x2018 #LEFT SINGLE QUOTATION MARK | |
162 | 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK | |
163 | 0x93 0x201c #LEFT DOUBLE QUOTATION MARK | |
164 | 0x94 0x201d #RIGHT DOUBLE QUOTATION MARK | |
165 | 0x95 0x2022 #BULLET | |
166 | 0x96 0x2013 #EN DASH | |
167 | 0x97 0x2014 #EM DASH | |
168 | 0x98 #UNDEFINED | |
169 | 0x99 0x2122 #TRADE MARK SIGN | |
170 | 0x9a #UNDEFINED | |
171 | 0x9b 0x203a #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK | |
172 | 0x9c #UNDEFINED | |
173 | 0x9d 0x00af #MACRON | |
174 | 0x9e 0x02db #OGONEK | |
175 | 0x9f #UNDEFINED | |
176 | 0xa0 0x00a0 #NO-BREAK SPACE | |
177 | 0xa1 #UNDEFINED | |
178 | 0xa2 0x00a2 #CENT SIGN | |
179 | 0xa3 0x00a3 #POUND SIGN | |
180 | 0xa4 0x00a4 #CURRENCY SIGN | |
181 | 0xa5 #UNDEFINED | |
182 | 0xa6 0x00a6 #BROKEN BAR | |
183 | 0xa7 0x00a7 #SECTION SIGN | |
184 | 0xa8 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE | |
185 | 0xa9 0x00a9 #COPYRIGHT SIGN | |
186 | 0xaa 0x0156 #LATIN CAPITAL LETTER R WITH CEDILLA | |
187 | 0xab 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
188 | 0xac 0x00ac #NOT SIGN | |
189 | 0xad 0x00ad #SOFT HYPHEN | |
190 | 0xae 0x00ae #REGISTERED SIGN | |
191 | 0xaf 0x00c6 #LATIN CAPITAL LETTER AE | |
192 | 0xb0 0x00b0 #DEGREE SIGN | |
193 | 0xb1 0x00b1 #PLUS-MINUS SIGN | |
194 | 0xb2 0x00b2 #SUPERSCRIPT TWO | |
195 | 0xb3 0x00b3 #SUPERSCRIPT THREE | |
196 | 0xb4 0x00b4 #ACUTE ACCENT | |
197 | 0xb5 0x00b5 #MICRO SIGN | |
198 | 0xb6 0x00b6 #PILCROW SIGN | |
199 | 0xb7 0x00b7 #MIDDLE DOT | |
200 | 0xb8 0x00f8 #LATIN SMALL LETTER O WITH STROKE | |
201 | 0xb9 0x00b9 #SUPERSCRIPT ONE | |
202 | 0xba 0x0157 #LATIN SMALL LETTER R WITH CEDILLA | |
203 | 0xbb 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
204 | 0xbc 0x00bc #VULGAR FRACTION ONE QUARTER | |
205 | 0xbd 0x00bd #VULGAR FRACTION ONE HALF | |
206 | 0xbe 0x00be #VULGAR FRACTION THREE QUARTERS | |
207 | 0xbf 0x00e6 #LATIN SMALL LETTER AE | |
208 | 0xc0 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK | |
209 | 0xc1 0x012e #LATIN CAPITAL LETTER I WITH OGONEK | |
210 | 0xc2 0x0100 #LATIN CAPITAL LETTER A WITH MACRON | |
211 | 0xc3 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE | |
212 | 0xc4 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
213 | 0xc5 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
214 | 0xc6 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK | |
215 | 0xc7 0x0112 #LATIN CAPITAL LETTER E WITH MACRON | |
216 | 0xc8 0x010c #LATIN CAPITAL LETTER C WITH CARON | |
217 | 0xc9 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE | |
218 | 0xca 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE | |
219 | 0xcb 0x0116 #LATIN CAPITAL LETTER E WITH DOT ABOVE | |
220 | 0xcc 0x0122 #LATIN CAPITAL LETTER G WITH CEDILLA | |
221 | 0xcd 0x0136 #LATIN CAPITAL LETTER K WITH CEDILLA | |
222 | 0xce 0x012a #LATIN CAPITAL LETTER I WITH MACRON | |
223 | 0xcf 0x013b #LATIN CAPITAL LETTER L WITH CEDILLA | |
224 | 0xd0 0x0160 #LATIN CAPITAL LETTER S WITH CARON | |
225 | 0xd1 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE | |
226 | 0xd2 0x0145 #LATIN CAPITAL LETTER N WITH CEDILLA | |
227 | 0xd3 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE | |
228 | 0xd4 0x014c #LATIN CAPITAL LETTER O WITH MACRON | |
229 | 0xd5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE | |
230 | 0xd6 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
231 | 0xd7 0x00d7 #MULTIPLICATION SIGN | |
232 | 0xd8 0x0172 #LATIN CAPITAL LETTER U WITH OGONEK | |
233 | 0xd9 0x0141 #LATIN CAPITAL LETTER L WITH STROKE | |
234 | 0xda 0x015a #LATIN CAPITAL LETTER S WITH ACUTE | |
235 | 0xdb 0x016a #LATIN CAPITAL LETTER U WITH MACRON | |
236 | 0xdc 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS | |
237 | 0xdd 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE | |
238 | 0xde 0x017d #LATIN CAPITAL LETTER Z WITH CARON | |
239 | 0xdf 0x00df #LATIN SMALL LETTER SHARP S | |
240 | 0xe0 0x0105 #LATIN SMALL LETTER A WITH OGONEK | |
241 | 0xe1 0x012f #LATIN SMALL LETTER I WITH OGONEK | |
242 | 0xe2 0x0101 #LATIN SMALL LETTER A WITH MACRON | |
243 | 0xe3 0x0107 #LATIN SMALL LETTER C WITH ACUTE | |
244 | 0xe4 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS | |
245 | 0xe5 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE | |
246 | 0xe6 0x0119 #LATIN SMALL LETTER E WITH OGONEK | |
247 | 0xe7 0x0113 #LATIN SMALL LETTER E WITH MACRON | |
248 | 0xe8 0x010d #LATIN SMALL LETTER C WITH CARON | |
249 | 0xe9 0x00e9 #LATIN SMALL LETTER E WITH ACUTE | |
250 | 0xea 0x017a #LATIN SMALL LETTER Z WITH ACUTE | |
251 | 0xeb 0x0117 #LATIN SMALL LETTER E WITH DOT ABOVE | |
252 | 0xec 0x0123 #LATIN SMALL LETTER G WITH CEDILLA | |
253 | 0xed 0x0137 #LATIN SMALL LETTER K WITH CEDILLA | |
254 | 0xee 0x012b #LATIN SMALL LETTER I WITH MACRON | |
255 | 0xef 0x013c #LATIN SMALL LETTER L WITH CEDILLA | |
256 | 0xf0 0x0161 #LATIN SMALL LETTER S WITH CARON | |
257 | 0xf1 0x0144 #LATIN SMALL LETTER N WITH ACUTE | |
258 | 0xf2 0x0146 #LATIN SMALL LETTER N WITH CEDILLA | |
259 | 0xf3 0x00f3 #LATIN SMALL LETTER O WITH ACUTE | |
260 | 0xf4 0x014d #LATIN SMALL LETTER O WITH MACRON | |
261 | 0xf5 0x00f5 #LATIN SMALL LETTER O WITH TILDE | |
262 | 0xf6 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS | |
263 | 0xf7 0x00f7 #DIVISION SIGN | |
264 | 0xf8 0x0173 #LATIN SMALL LETTER U WITH OGONEK | |
265 | 0xf9 0x0142 #LATIN SMALL LETTER L WITH STROKE | |
266 | 0xfa 0x015b #LATIN SMALL LETTER S WITH ACUTE | |
267 | 0xfb 0x016b #LATIN SMALL LETTER U WITH MACRON | |
268 | 0xfc 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS | |
269 | 0xfd 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE | |
270 | 0xfe 0x017e #LATIN SMALL LETTER Z WITH CARON | |
271 | 0xff 0x02d9 #DOT ABOVE | |
272 | ||
273 | 7 | |
274 | 8 | * The contents of this file are subject to the Interbase Public |
275 | 9 | * License Version 1.0 (the "License"); you may not use this file |
0 | 0 | /* ------------------------------------------- |
1 | 1 | This file was created with csUtility.java |
2 | # | |
2 | ||
3 | 3 | # Name: cp1258 to Unicode table |
4 | 4 | # Unicode version: 2.0 |
5 | 5 | # Table version: 2.01 |
6 | 6 | # Table format: Format A |
7 | 7 | # Date: 04/15/98 |
8 | # | |
9 | # Contact: cpxlate@microsoft.com | |
10 | # | |
11 | # General notes: none | |
12 | # | |
13 | # Format: Three tab-separated columns | |
14 | # Column #1 is the cp1258 code (in hex) | |
15 | # Column #2 is the Unicode (in hex as 0xXXXX) | |
16 | # Column #3 is the Unicode name (follows a comment sign, '#') | |
17 | # | |
18 | # The entries are in cp1258 order | |
19 | # | |
20 | 0x00 0x0000 #NULL | |
21 | 0x01 0x0001 #START OF HEADING | |
22 | 0x02 0x0002 #START OF TEXT | |
23 | 0x03 0x0003 #END OF TEXT | |
24 | 0x04 0x0004 #END OF TRANSMISSION | |
25 | 0x05 0x0005 #ENQUIRY | |
26 | 0x06 0x0006 #ACKNOWLEDGE | |
27 | 0x07 0x0007 #BELL | |
28 | 0x08 0x0008 #BACKSPACE | |
29 | 0x09 0x0009 #HORIZONTAL TABULATION | |
30 | 0x0A 0x000A #LINE FEED | |
31 | 0x0B 0x000B #VERTICAL TABULATION | |
32 | 0x0C 0x000C #FORM FEED | |
33 | 0x0D 0x000D #CARRIAGE RETURN | |
34 | 0x0E 0x000E #SHIFT OUT | |
35 | 0x0F 0x000F #SHIFT IN | |
36 | 0x10 0x0010 #DATA LINK ESCAPE | |
37 | 0x11 0x0011 #DEVICE CONTROL ONE | |
38 | 0x12 0x0012 #DEVICE CONTROL TWO | |
39 | 0x13 0x0013 #DEVICE CONTROL THREE | |
40 | 0x14 0x0014 #DEVICE CONTROL FOUR | |
41 | 0x15 0x0015 #NEGATIVE ACKNOWLEDGE | |
42 | 0x16 0x0016 #SYNCHRONOUS IDLE | |
43 | 0x17 0x0017 #END OF TRANSMISSION BLOCK | |
44 | 0x18 0x0018 #CANCEL | |
45 | 0x19 0x0019 #END OF MEDIUM | |
46 | 0x1A 0x001A #SUBSTITUTE | |
47 | 0x1B 0x001B #ESCAPE | |
48 | 0x1C 0x001C #FILE SEPARATOR | |
49 | 0x1D 0x001D #GROUP SEPARATOR | |
50 | 0x1E 0x001E #RECORD SEPARATOR | |
51 | 0x1F 0x001F #UNIT SEPARATOR | |
52 | 0x20 0x0020 #SPACE | |
53 | 0x21 0x0021 #EXCLAMATION MARK | |
54 | 0x22 0x0022 #QUOTATION MARK | |
55 | 0x23 0x0023 #NUMBER SIGN | |
56 | 0x24 0x0024 #DOLLAR SIGN | |
57 | 0x25 0x0025 #PERCENT SIGN | |
58 | 0x26 0x0026 #AMPERSAND | |
59 | 0x27 0x0027 #APOSTROPHE | |
60 | 0x28 0x0028 #LEFT PARENTHESIS | |
61 | 0x29 0x0029 #RIGHT PARENTHESIS | |
62 | 0x2A 0x002A #ASTERISK | |
63 | 0x2B 0x002B #PLUS SIGN | |
64 | 0x2C 0x002C #COMMA | |
65 | 0x2D 0x002D #HYPHEN-MINUS | |
66 | 0x2E 0x002E #FULL STOP | |
67 | 0x2F 0x002F #SOLIDUS | |
68 | 0x30 0x0030 #DIGIT ZERO | |
69 | 0x31 0x0031 #DIGIT ONE | |
70 | 0x32 0x0032 #DIGIT TWO | |
71 | 0x33 0x0033 #DIGIT THREE | |
72 | 0x34 0x0034 #DIGIT FOUR | |
73 | 0x35 0x0035 #DIGIT FIVE | |
74 | 0x36 0x0036 #DIGIT SIX | |
75 | 0x37 0x0037 #DIGIT SEVEN | |
76 | 0x38 0x0038 #DIGIT EIGHT | |
77 | 0x39 0x0039 #DIGIT NINE | |
78 | 0x3A 0x003A #COLON | |
79 | 0x3B 0x003B #SEMICOLON | |
80 | 0x3C 0x003C #LESS-THAN SIGN | |
81 | 0x3D 0x003D #EQUALS SIGN | |
82 | 0x3E 0x003E #GREATER-THAN SIGN | |
83 | 0x3F 0x003F #QUESTION MARK | |
84 | 0x40 0x0040 #COMMERCIAL AT | |
85 | 0x41 0x0041 #LATIN CAPITAL LETTER A | |
86 | 0x42 0x0042 #LATIN CAPITAL LETTER B | |
87 | 0x43 0x0043 #LATIN CAPITAL LETTER C | |
88 | 0x44 0x0044 #LATIN CAPITAL LETTER D | |
89 | 0x45 0x0045 #LATIN CAPITAL LETTER E | |
90 | 0x46 0x0046 #LATIN CAPITAL LETTER F | |
91 | 0x47 0x0047 #LATIN CAPITAL LETTER G | |
92 | 0x48 0x0048 #LATIN CAPITAL LETTER H | |
93 | 0x49 0x0049 #LATIN CAPITAL LETTER I | |
94 | 0x4A 0x004A #LATIN CAPITAL LETTER J | |
95 | 0x4B 0x004B #LATIN CAPITAL LETTER K | |
96 | 0x4C 0x004C #LATIN CAPITAL LETTER L | |
97 | 0x4D 0x004D #LATIN CAPITAL LETTER M | |
98 | 0x4E 0x004E #LATIN CAPITAL LETTER N | |
99 | 0x4F 0x004F #LATIN CAPITAL LETTER O | |
100 | 0x50 0x0050 #LATIN CAPITAL LETTER P | |
101 | 0x51 0x0051 #LATIN CAPITAL LETTER Q | |
102 | 0x52 0x0052 #LATIN CAPITAL LETTER R | |
103 | 0x53 0x0053 #LATIN CAPITAL LETTER S | |
104 | 0x54 0x0054 #LATIN CAPITAL LETTER T | |
105 | 0x55 0x0055 #LATIN CAPITAL LETTER U | |
106 | 0x56 0x0056 #LATIN CAPITAL LETTER V | |
107 | 0x57 0x0057 #LATIN CAPITAL LETTER W | |
108 | 0x58 0x0058 #LATIN CAPITAL LETTER X | |
109 | 0x59 0x0059 #LATIN CAPITAL LETTER Y | |
110 | 0x5A 0x005A #LATIN CAPITAL LETTER Z | |
111 | 0x5B 0x005B #LEFT SQUARE BRACKET | |
112 | 0x5C 0x005C #REVERSE SOLIDUS | |
113 | 0x5D 0x005D #RIGHT SQUARE BRACKET | |
114 | 0x5E 0x005E #CIRCUMFLEX ACCENT | |
115 | 0x5F 0x005F #LOW LINE | |
116 | 0x60 0x0060 #GRAVE ACCENT | |
117 | 0x61 0x0061 #LATIN SMALL LETTER A | |
118 | 0x62 0x0062 #LATIN SMALL LETTER B | |
119 | 0x63 0x0063 #LATIN SMALL LETTER C | |
120 | 0x64 0x0064 #LATIN SMALL LETTER D | |
121 | 0x65 0x0065 #LATIN SMALL LETTER E | |
122 | 0x66 0x0066 #LATIN SMALL LETTER F | |
123 | 0x67 0x0067 #LATIN SMALL LETTER G | |
124 | 0x68 0x0068 #LATIN SMALL LETTER H | |
125 | 0x69 0x0069 #LATIN SMALL LETTER I | |
126 | 0x6A 0x006A #LATIN SMALL LETTER J | |
127 | 0x6B 0x006B #LATIN SMALL LETTER K | |
128 | 0x6C 0x006C #LATIN SMALL LETTER L | |
129 | 0x6D 0x006D #LATIN SMALL LETTER M | |
130 | 0x6E 0x006E #LATIN SMALL LETTER N | |
131 | 0x6F 0x006F #LATIN SMALL LETTER O | |
132 | 0x70 0x0070 #LATIN SMALL LETTER P | |
133 | 0x71 0x0071 #LATIN SMALL LETTER Q | |
134 | 0x72 0x0072 #LATIN SMALL LETTER R | |
135 | 0x73 0x0073 #LATIN SMALL LETTER S | |
136 | 0x74 0x0074 #LATIN SMALL LETTER T | |
137 | 0x75 0x0075 #LATIN SMALL LETTER U | |
138 | 0x76 0x0076 #LATIN SMALL LETTER V | |
139 | 0x77 0x0077 #LATIN SMALL LETTER W | |
140 | 0x78 0x0078 #LATIN SMALL LETTER X | |
141 | 0x79 0x0079 #LATIN SMALL LETTER Y | |
142 | 0x7A 0x007A #LATIN SMALL LETTER Z | |
143 | 0x7B 0x007B #LEFT CURLY BRACKET | |
144 | 0x7C 0x007C #VERTICAL LINE | |
145 | 0x7D 0x007D #RIGHT CURLY BRACKET | |
146 | 0x7E 0x007E #TILDE | |
147 | 0x7F 0x007F #DELETE | |
148 | 0x80 0x20AC #EURO SIGN | |
149 | 0x81 #UNDEFINED | |
150 | 0x82 0x201A #SINGLE LOW-9 QUOTATION MARK | |
151 | 0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK | |
152 | 0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK | |
153 | 0x85 0x2026 #HORIZONTAL ELLIPSIS | |
154 | 0x86 0x2020 #DAGGER | |
155 | 0x87 0x2021 #DOUBLE DAGGER | |
156 | 0x88 0x02C6 #MODIFIER LETTER CIRCUMFLEX ACCENT | |
157 | 0x89 0x2030 #PER MILLE SIGN | |
158 | 0x8A #UNDEFINED | |
159 | 0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK | |
160 | 0x8C 0x0152 #LATIN CAPITAL LIGATURE OE | |
161 | 0x8D #UNDEFINED | |
162 | 0x8E #UNDEFINED | |
163 | 0x8F #UNDEFINED | |
164 | 0x90 #UNDEFINED | |
165 | 0x91 0x2018 #LEFT SINGLE QUOTATION MARK | |
166 | 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK | |
167 | 0x93 0x201C #LEFT DOUBLE QUOTATION MARK | |
168 | 0x94 0x201D #RIGHT DOUBLE QUOTATION MARK | |
169 | 0x95 0x2022 #BULLET | |
170 | 0x96 0x2013 #EN DASH | |
171 | 0x97 0x2014 #EM DASH | |
172 | 0x98 0x02DC #SMALL TILDE | |
173 | 0x99 0x2122 #TRADE MARK SIGN | |
174 | 0x9A #UNDEFINED | |
175 | 0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK | |
176 | 0x9C 0x0153 #LATIN SMALL LIGATURE OE | |
177 | 0x9D #UNDEFINED | |
178 | 0x9E #UNDEFINED | |
179 | 0x9F 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS | |
180 | 0xA0 0x00A0 #NO-BREAK SPACE | |
181 | 0xA1 0x00A1 #INVERTED EXCLAMATION MARK | |
182 | 0xA2 0x00A2 #CENT SIGN | |
183 | 0xA3 0x00A3 #POUND SIGN | |
184 | 0xA4 0x00A4 #CURRENCY SIGN | |
185 | 0xA5 0x00A5 #YEN SIGN | |
186 | 0xA6 0x00A6 #BROKEN BAR | |
187 | 0xA7 0x00A7 #SECTION SIGN | |
188 | 0xA8 0x00A8 #DIAERESIS | |
189 | 0xA9 0x00A9 #COPYRIGHT SIGN | |
190 | 0xAA 0x00AA #FEMININE ORDINAL INDICATOR | |
191 | 0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | |
192 | 0xAC 0x00AC #NOT SIGN | |
193 | 0xAD 0x00AD #SOFT HYPHEN | |
194 | 0xAE 0x00AE #REGISTERED SIGN | |
195 | 0xAF 0x00AF #MACRON | |
196 | 0xB0 0x00B0 #DEGREE SIGN | |
197 | 0xB1 0x00B1 #PLUS-MINUS SIGN | |
198 | 0xB2 0x00B2 #SUPERSCRIPT TWO | |
199 | 0xB3 0x00B3 #SUPERSCRIPT THREE | |
200 | 0xB4 0x00B4 #ACUTE ACCENT | |
201 | 0xB5 0x00B5 #MICRO SIGN | |
202 | 0xB6 0x00B6 #PILCROW SIGN | |
203 | 0xB7 0x00B7 #MIDDLE DOT | |
204 | 0xB8 0x00B8 #CEDILLA | |
205 | 0xB9 0x00B9 #SUPERSCRIPT ONE | |
206 | 0xBA 0x00BA #MASCULINE ORDINAL INDICATOR | |
207 | 0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | |
208 | 0xBC 0x00BC #VULGAR FRACTION ONE QUARTER | |
209 | 0xBD 0x00BD #VULGAR FRACTION ONE HALF | |
210 | 0xBE 0x00BE #VULGAR FRACTION THREE QUARTERS | |
211 | 0xBF 0x00BF #INVERTED QUESTION MARK | |
212 | 0xC0 0x00C0 #LATIN CAPITAL LETTER A WITH GRAVE | |
213 | 0xC1 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE | |
214 | 0xC2 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
215 | 0xC3 0x0102 #LATIN CAPITAL LETTER A WITH BREVE | |
216 | 0xC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS | |
217 | 0xC5 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE | |
218 | 0xC6 0x00C6 #LATIN CAPITAL LETTER AE | |
219 | 0xC7 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA | |
220 | 0xC8 0x00C8 #LATIN CAPITAL LETTER E WITH GRAVE | |
221 | 0xC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE | |
222 | 0xCA 0x00CA #LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
223 | 0xCB 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS | |
224 | 0xCC 0x0300 #COMBINING GRAVE ACCENT | |
225 | 0xCD 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE | |
226 | 0xCE 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX | |
227 | 0xCF 0x00CF #LATIN CAPITAL LETTER I WITH DIAERESIS | |
228 | 0xD0 0x0110 #LATIN CAPITAL LETTER D WITH STROKE | |
229 | 0xD1 0x00D1 #LATIN CAPITAL LETTER N WITH TILDE | |
230 | 0xD2 0x0309 #COMBINING HOOK ABOVE | |
231 | 0xD3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE | |
232 | 0xD4 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
233 | 0xD5 0x01A0 #LATIN CAPITAL LETTER O WITH HORN | |
234 | 0xD6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS | |
235 | 0xD7 0x00D7 #MULTIPLICATION SIGN | |
236 | 0xD8 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE | |
237 | 0xD9 0x00D9 #LATIN CAPITAL LETTER U WITH GRAVE | |
238 | 0xDA 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE | |
239 | 0xDB 0x00DB #LATIN CAPITAL LETTER U WITH CIRCUMFLEX | |
240 | 0xDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS | |
241 | 0xDD 0x01AF #LATIN CAPITAL LETTER U WITH HORN | |
242 | 0xDE 0x0303 #COMBINING TILDE | |
243 | 0xDF 0x00DF #LATIN SMALL LETTER SHARP S | |
244 | 0xE0 0x00E0 #LATIN SMALL LETTER A WITH GRAVE | |
245 | 0xE1 0x00E1 #LATIN SMALL LETTER A WITH ACUTE | |
246 | 0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX | |
247 | 0xE3 0x0103 #LATIN SMALL LETTER A WITH BREVE | |
248 | 0xE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS | |
249 | 0xE5 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE | |
250 | 0xE6 0x00E6 #LATIN SMALL LETTER AE | |
251 | 0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA | |
252 | 0xE8 0x00E8 #LATIN SMALL LETTER E WITH GRAVE | |
253 | 0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE | |
254 | 0xEA 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX | |
255 | 0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS | |
256 | 0xEC 0x0301 #COMBINING ACUTE ACCENT | |
257 | 0xED 0x00ED #LATIN SMALL LETTER I WITH ACUTE | |
258 | 0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX | |
259 | 0xEF 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS | |
260 | 0xF0 0x0111 #LATIN SMALL LETTER D WITH STROKE | |
261 | 0xF1 0x00F1 #LATIN SMALL LETTER N WITH TILDE | |
262 | 0xF2 0x0323 #COMBINING DOT BELOW | |
263 | 0xF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE | |
264 | 0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX | |
265 | 0xF5 0x01A1 #LATIN SMALL LETTER O WITH HORN | |
266 | 0xF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS | |
267 | 0xF7 0x00F7 #DIVISION SIGN | |
268 | 0xF8 0x00F8 #LATIN SMALL LETTER O WITH STROKE | |
269 | 0xF9 0x00F9 #LATIN SMALL LETTER U WITH GRAVE | |
270 | 0xFA 0x00FA #LATIN SMALL LETTER U WITH ACUTE | |
271 | 0xFB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX | |
272 | 0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS | |
273 | 0xFD 0x01B0 #LATIN SMALL LETTER U WITH HORN | |
274 | 0xFE 0x20AB #DONG SIGN | |
275 | 0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS | |
276 | 8 | |
277 | 9 | -------------------------------------------- */ |
278 | 10 |
5590 | 5590 | return; |
5591 | 5591 | } |
5592 | 5592 | |
5593 | const UCHAR* p = buffer; | |
5594 | while (*p != isc_info_end && *p != isc_info_truncated && p < buffer + sizeof(buffer)) | |
5595 | { | |
5596 | const UCHAR item = (UCHAR) *p++; | |
5597 | const USHORT length = gds__vax_integer(p, sizeof(USHORT)); | |
5598 | p += sizeof(USHORT); | |
5593 | for (Firebird::ClumpletReader p(Firebird::ClumpletReader::InfoResponse, buffer, sizeof(buffer)); !p.isEof(); p.moveNext()) | |
5594 | { | |
5595 | UCHAR item = p.getClumpTag(); | |
5596 | if (item == isc_info_end) | |
5597 | break; | |
5598 | ||
5599 | 5599 | switch (item) |
5600 | 5600 | { |
5601 | 5601 | case isc_info_ods_version: |
5602 | isqlGlob.major_ods = gds__vax_integer(p, length); | |
5602 | isqlGlob.major_ods = p.getInt(); | |
5603 | 5603 | break; |
5604 | 5604 | case isc_info_ods_minor_version: |
5605 | isqlGlob.minor_ods = gds__vax_integer(p, length); | |
5605 | isqlGlob.minor_ods = p.getInt(); | |
5606 | 5606 | break; |
5607 | 5607 | case isc_info_db_sql_dialect: |
5608 | global_dialect_spoken = gds__vax_integer(p, length); | |
5608 | global_dialect_spoken = p.getInt(); | |
5609 | 5609 | if (isqlGlob.major_ods < ODS_VERSION10) |
5610 | 5610 | { |
5611 | 5611 | if (isqlGlob.SQL_dialect > SQL_DIALECT_V5 && setValues.Warnings) |
5654 | 5654 | case isc_info_error: |
5655 | 5655 | // Error indicates an option was not understood by the |
5656 | 5656 | // remote server. |
5657 | if (*p == isc_info_firebird_version) | |
5657 | if (p.getBytes()[0] == isc_info_firebird_version) | |
5658 | 5658 | { |
5659 | 5659 | // must be an old or non Firebird server |
5660 | 5660 | break; |
5700 | 5700 | // to put it all. It's a FULL or NOTHING answer. It grows with redirection. |
5701 | 5701 | // The command SHOW version that calls isc_version() will return more info. |
5702 | 5702 | isqlGlob.printf("Server version:%s", NEWLINE); |
5703 | const UCHAR* q = p; // We don't want to spoil p with a wrong calculation. | |
5704 | const UCHAR* limit = q + length; | |
5703 | const UCHAR* q = p.getBytes(); // We don't want to spoil p with a wrong calculation. | |
5704 | const UCHAR* limit = q + p.getClumpLength(); | |
5705 | 5705 | for (int times = *q++; times && q < limit; --times) |
5706 | 5706 | { |
5707 | 5707 | int l = *q++; |
5715 | 5715 | break; |
5716 | 5716 | |
5717 | 5717 | case frb_info_att_charset: |
5718 | isqlGlob.att_charset = gds__vax_integer(p, length); | |
5718 | isqlGlob.att_charset = p.getInt(); | |
5719 | 5719 | break; |
5720 | 5720 | |
5721 | 5721 | default: |
5723 | 5723 | item, NEWLINE); |
5724 | 5724 | break; |
5725 | 5725 | } |
5726 | p += length; | |
5727 | 5726 | } |
5728 | 5727 | |
5729 | 5728 | if (isqlGlob.major_ods < ODS_VERSION8) |
45 | 45 | #include "../jrd/intl.h" |
46 | 46 | #include "../common/intlobj_new.h" |
47 | 47 | #include "../common/classes/AlignedBuffer.h" |
48 | #include "../common/classes/ClumpletReader.h" | |
48 | 49 | #include "../isql/isql_proto.h" |
49 | 50 | #include "../isql/show_proto.h" |
50 | 51 | #include "../isql/iutils_proto.h" |
401 | 402 | |
402 | 403 | *info_buf = '\0'; |
403 | 404 | SCHAR* info = info_buf; |
404 | for (const UCHAR* d = buffer; *d != isc_info_end;) | |
405 | { | |
405 | ||
406 | for (Firebird::ClumpletReader p(Firebird::ClumpletReader::InfoResponse, buffer, sizeof(buffer)); !p.isEof(); p.moveNext()) | |
407 | { | |
408 | UCHAR item = p.getClumpTag(); | |
406 | 409 | SINT64 value_out = 0; |
407 | const UCHAR item = *d++; | |
408 | const int length = ISQL_vax_integer(d, 2); | |
409 | d += 2; | |
410 | ||
410 | 411 | /* |
411 | 412 | * This is not the best solution but it fixes the lack of <LF> characters |
412 | 413 | * in Windows ISQL. This will need to remain until we modify the messages |
419 | 420 | break; |
420 | 421 | |
421 | 422 | case isc_info_page_size: |
422 | value_out = ISQL_vax_integer(d, length); | |
423 | value_out = p.getInt(); | |
423 | 424 | sprintf(info, "PAGE_SIZE %" SQUADFORMAT"%s", value_out, separator); |
424 | 425 | break; |
425 | 426 | |
426 | 427 | case isc_info_db_size_in_pages: |
427 | value_out = ISQL_vax_integer(d, length); | |
428 | value_out = p.getInt(); | |
428 | 429 | if (translate) |
429 | 430 | { |
430 | 431 | IUTILS_msg_get(NUMBER_PAGES, msg, SafeArg() << value_out); |
435 | 436 | break; |
436 | 437 | |
437 | 438 | case fb_info_pages_used: |
438 | value_out = ISQL_vax_integer(d, length); | |
439 | value_out = p.getInt(); | |
439 | 440 | if (translate) |
440 | 441 | { |
441 | 442 | IUTILS_msg_get(NUMBER_USED_PAGES, msg, SafeArg() << value_out); |
446 | 447 | break; |
447 | 448 | |
448 | 449 | case fb_info_pages_free: |
449 | value_out = ISQL_vax_integer(d, length); | |
450 | value_out = p.getInt(); | |
450 | 451 | if (translate) |
451 | 452 | { |
452 | 453 | IUTILS_msg_get(NUMBER_FREE_PAGES, msg, SafeArg() << value_out); |
457 | 458 | break; |
458 | 459 | |
459 | 460 | case fb_info_crypt_state: |
460 | value_out = ISQL_vax_integer(d, length); | |
461 | ||
461 | value_out = p.getInt(); | |
462 | 462 | if (translate) |
463 | 463 | { |
464 | 464 | Firebird::string s; |
488 | 488 | break; |
489 | 489 | |
490 | 490 | case isc_info_sweep_interval: |
491 | value_out = ISQL_vax_integer(d, length); | |
491 | value_out = p.getInt(); | |
492 | 492 | if (translate) |
493 | 493 | { |
494 | 494 | IUTILS_msg_get(SWEEP_INTERV, msg, SafeArg() << value_out); |
499 | 499 | break; |
500 | 500 | |
501 | 501 | case isc_info_forced_writes: |
502 | value_out = ISQL_vax_integer (d, length); | |
502 | value_out = p.getInt(); | |
503 | 503 | sprintf (info, "Forced Writes are %s%s", (value_out == 1 ? "ON" : "OFF"), separator); |
504 | 504 | break; |
505 | 505 | |
506 | 506 | case isc_info_oldest_transaction : |
507 | value_out = ISQL_vax_integer (d, length); | |
507 | value_out = p.getInt(); | |
508 | 508 | sprintf(info, "Transaction - oldest = %" SQUADFORMAT"%s", value_out, separator); |
509 | 509 | break; |
510 | 510 | |
511 | 511 | case isc_info_oldest_active : |
512 | value_out = ISQL_vax_integer (d, length); | |
512 | value_out = p.getInt(); | |
513 | 513 | sprintf(info, "Transaction - oldest active = %" SQUADFORMAT"%s", value_out, separator); |
514 | 514 | break; |
515 | 515 | |
516 | 516 | case isc_info_oldest_snapshot : |
517 | value_out = ISQL_vax_integer (d, length); | |
517 | value_out = p.getInt(); | |
518 | 518 | sprintf(info, "Transaction - oldest snapshot = %" SQUADFORMAT"%s", value_out, separator); |
519 | 519 | break; |
520 | 520 | |
521 | 521 | case isc_info_next_transaction : |
522 | value_out = ISQL_vax_integer (d, length); | |
522 | value_out = p.getInt(); | |
523 | 523 | sprintf (info, "Transaction - Next = %" SQUADFORMAT"%s", value_out, separator); |
524 | 524 | break; |
525 | 525 | |
526 | 526 | case isc_info_base_level: |
527 | value_out = ISQL_vax_integer(d, length); | |
527 | value_out = p.getInt(); | |
528 | 528 | if (translate) |
529 | 529 | { |
530 | 530 | IUTILS_msg_get(BASE_LEVEL, msg, SafeArg() << value_out); |
535 | 535 | break; |
536 | 536 | |
537 | 537 | case isc_info_limbo: |
538 | value_out = ISQL_vax_integer(d, length); | |
538 | value_out = p.getInt(); | |
539 | 539 | if (translate) |
540 | 540 | { |
541 | 541 | IUTILS_msg_get(LIMBO, msg, SafeArg() << value_out); |
546 | 546 | break; |
547 | 547 | |
548 | 548 | case isc_info_ods_version: |
549 | isqlGlob.major_ods = ISQL_vax_integer(d, length); | |
549 | isqlGlob.major_ods = p.getInt(); | |
550 | 550 | break; |
551 | 551 | case isc_info_ods_minor_version: |
552 | value_out = ISQL_vax_integer(d, length); | |
552 | value_out = p.getInt(); | |
553 | 553 | sprintf(info, "ODS = %" SLONGFORMAT".%" SQUADFORMAT"%s", |
554 | 554 | (SLONG) isqlGlob.major_ods, value_out, separator); |
555 | 555 | break; |
556 | 556 | |
557 | 557 | case isc_info_creation_date: |
558 | if (length == sizeof(ISC_TIMESTAMP)) | |
558 | if (p.getClumpLength() == sizeof(ISC_TIMESTAMP)) | |
559 | 559 | { |
560 | 560 | ISC_TIMESTAMP ts; |
561 | 561 | |
562 | const UCHAR* p = d; | |
563 | ts.timestamp_date = ISQL_vax_integer(p, sizeof(ISC_DATE)); | |
564 | p += sizeof(ISC_DATE); | |
565 | ts.timestamp_time = ISQL_vax_integer(p, sizeof(ISC_TIME)); | |
562 | const UCHAR* t = p.getBytes(); | |
563 | ts.timestamp_date = ISQL_vax_integer(t, sizeof(ISC_DATE)); | |
564 | t += sizeof(ISC_DATE); | |
565 | ts.timestamp_time = ISQL_vax_integer(t, sizeof(ISC_TIME)); | |
566 | 566 | |
567 | 567 | struct tm time; |
568 | 568 | isc_decode_timestamp(&ts, &time); |
578 | 578 | { |
579 | 579 | // Will print with garbage for now. |
580 | 580 | //It's sprintf(info, "DB/Host = %.*s", length, d); |
581 | const UCHAR* s = d; | |
582 | const UCHAR* end = s + length; | |
581 | const UCHAR* s = p.getBytes(); | |
582 | const UCHAR* end = s + p.getClumpLength(); | |
583 | 583 | ++s; // Skip useless indicator. |
584 | 584 | int len = *s++; |
585 | 585 | printf("DB = %.*s\n", len, s); |
597 | 597 | case isc_info_truncated: |
598 | 598 | return info > info_buf; // If we got some items, we are (partially) successful. |
599 | 599 | } |
600 | ||
601 | d += length; | |
602 | 600 | info += strlen(info); |
603 | 601 | } |
604 | 602 | |
6305 | 6303 | |
6306 | 6304 | bool newline = false; |
6307 | 6305 | processing_state rc = OBJECT_NOT_FOUND; |
6308 | for (const UCHAR* data = buffer; *data != isc_info_end;) | |
6309 | { | |
6310 | const UCHAR item = *data++; | |
6311 | const int length = gds__vax_integer(data, 2); | |
6312 | data += 2; | |
6313 | ||
6314 | switch (item) | |
6315 | { | |
6316 | case isc_info_end: | |
6317 | break; | |
6318 | ||
6306 | ||
6307 | for (Firebird::ClumpletReader p(Firebird::ClumpletReader::InfoResponse, buffer, sizeof(buffer)); !p.isEof(); p.moveNext()) | |
6308 | { | |
6309 | switch (p.getClumpTag()) | |
6310 | { | |
6319 | 6311 | case isc_info_user_names: |
6320 | 6312 | { |
6321 | 6313 | if (rc == OBJECT_NOT_FOUND) |
6326 | 6318 | rc = SKIP; // We found at least one user. |
6327 | 6319 | } |
6328 | 6320 | |
6329 | int len = *data; | |
6330 | fb_assert(len == length - 1); | |
6331 | const UCHAR* uname = data + 1; | |
6321 | unsigned len = p.getBytes()[0]; | |
6322 | fb_assert(len == p.getClumpLength() - 1); | |
6323 | const UCHAR* uname = p.getBytes() + 1; | |
6332 | 6324 | // Let's mark all attachments with our same user with a # prefix. |
6333 | 6325 | bool same(len == my_user->vary_length && !memcmp(my_user->vary_string, uname, len)); |
6334 | 6326 | isqlGlob.printf("%c %-37.*s", same ? '#' : ' ', len, uname); |
6348 | 6340 | isqlGlob.printf("%s\n", msg); |
6349 | 6341 | return rc; // If we got some items, we are (partially) successful. |
6350 | 6342 | } |
6351 | ||
6352 | data += length; | |
6353 | if (data >= buffer + sizeof(buffer)) | |
6354 | break; | |
6355 | 6343 | } |
6356 | 6344 | |
6357 | 6345 | if (newline) // Last line was without newline. |
734 | 734 | |
735 | 735 | if (jStable) |
736 | 736 | { |
737 | jStable->getMutex()->enter(f); | |
737 | jStable->getSync()->enter(f); | |
738 | 738 | if (!jStable->getHandle()) |
739 | 739 | { |
740 | jStable->getMutex()->leave(); | |
740 | jStable->getSync()->leave(); | |
741 | 741 | Arg::Gds(isc_att_shutdown).raise(); |
742 | 742 | } |
743 | 743 | } |
751 | 751 | void StableAttachmentPart::manualLock(ULONG& flags) |
752 | 752 | { |
753 | 753 | fb_assert(!(flags & ATT_manual_lock)); |
754 | asyncMutex.enter(FB_FUNCTION); | |
755 | mainMutex.enter(FB_FUNCTION); | |
754 | async.enter(FB_FUNCTION); | |
755 | mainSync.enter(FB_FUNCTION); | |
756 | 756 | flags |= (ATT_manual_lock | ATT_async_manual_lock); |
757 | 757 | } |
758 | 758 | |
761 | 761 | if (flags & ATT_manual_lock) |
762 | 762 | { |
763 | 763 | flags &= ~ATT_manual_lock; |
764 | mainMutex.leave(); | |
764 | mainSync.leave(); | |
765 | 765 | } |
766 | 766 | manualAsyncUnlock(flags); |
767 | 767 | } |
771 | 771 | if (flags & ATT_async_manual_lock) |
772 | 772 | { |
773 | 773 | flags &= ~ATT_async_manual_lock; |
774 | asyncMutex.leave(); | |
774 | async.leave(); | |
775 | 775 | } |
776 | 776 | } |
777 | 777 | |
778 | 778 | JAttachment* Attachment::getInterface() throw() |
779 | 779 | { |
780 | 780 | return att_stable->getInterface(); |
781 | } | |
782 | ||
783 | void Attachment::setInterface(JAttachment* iface) throw() | |
784 | { | |
785 | att_stable->setInterface(iface); | |
781 | 786 | } |
782 | 787 | |
783 | 788 | UserId* Attachment::getUserId(const string& userName) |
125 | 125 | class StableAttachmentPart : public Firebird::RefCounted, public Firebird::GlobalStorage |
126 | 126 | { |
127 | 127 | public: |
128 | class Sync | |
129 | { | |
130 | public: | |
131 | Sync() | |
132 | : waiters(0), threadId(0), totalLocksCounter(0), currentLocksCounter(0) | |
133 | { } | |
134 | ||
135 | void enter(const char* aReason) | |
136 | { | |
137 | ThreadId curTid = getThreadId(); | |
138 | ||
139 | if (threadId == curTid) | |
140 | { | |
141 | currentLocksCounter++; | |
142 | return; | |
143 | } | |
144 | ||
145 | if (threadId || !syncMutex.tryEnter(aReason)) | |
146 | { | |
147 | // we have contention with another thread | |
148 | ++waiters; | |
149 | syncMutex.enter(aReason); | |
150 | --waiters; | |
151 | } | |
152 | ||
153 | threadId = curTid; | |
154 | totalLocksCounter++; | |
155 | fb_assert(currentLocksCounter == 0); | |
156 | currentLocksCounter++; | |
157 | } | |
158 | ||
159 | bool tryEnter(const char* aReason) | |
160 | { | |
161 | ThreadId curTid = getThreadId(); | |
162 | ||
163 | if (threadId == curTid) | |
164 | { | |
165 | currentLocksCounter++; | |
166 | return true; | |
167 | } | |
168 | ||
169 | if (threadId || !syncMutex.tryEnter(aReason)) | |
170 | return false; | |
171 | ||
172 | threadId = curTid; | |
173 | totalLocksCounter++; | |
174 | fb_assert(currentLocksCounter == 0); | |
175 | currentLocksCounter++; | |
176 | return true; | |
177 | } | |
178 | ||
179 | void leave() | |
180 | { | |
181 | fb_assert(currentLocksCounter > 0); | |
182 | ||
183 | if (--currentLocksCounter == 0) | |
184 | { | |
185 | threadId = 0; | |
186 | syncMutex.leave(); | |
187 | } | |
188 | } | |
189 | ||
190 | bool hasContention() const | |
191 | { | |
192 | return (waiters.value() > 0); | |
193 | } | |
194 | ||
195 | FB_UINT64 getLockCounter() const | |
196 | { | |
197 | return totalLocksCounter; | |
198 | } | |
199 | ||
200 | #ifdef DEV_BUILD | |
201 | bool locked() const | |
202 | { | |
203 | return threadId == getThreadId(); | |
204 | } | |
205 | #endif | |
206 | ||
207 | ~Sync() | |
208 | { | |
209 | if (threadId == getThreadId()) | |
210 | { | |
211 | syncMutex.leave(); | |
212 | } | |
213 | } | |
214 | ||
215 | private: | |
216 | // copying is prohibited | |
217 | Sync(const Sync&); | |
218 | Sync& operator=(const Sync&); | |
219 | ||
220 | Firebird::Mutex syncMutex; | |
221 | Firebird::AtomicCounter waiters; | |
222 | ThreadId threadId; | |
223 | volatile FB_UINT64 totalLocksCounter; | |
224 | int currentLocksCounter; | |
225 | }; | |
226 | ||
227 | typedef Firebird::RaiiLockGuard<StableAttachmentPart> SyncGuard; | |
228 | ||
128 | 229 | explicit StableAttachmentPart(Attachment* handle) |
129 | 230 | : att(handle), jAtt(NULL) |
130 | 231 | { } |
144 | 245 | jAtt = ja; |
145 | 246 | } |
146 | 247 | |
147 | Firebird::Mutex* getMutex(bool useAsync = false, bool forceAsync = false) | |
248 | Sync* getSync(bool useAsync = false, bool forceAsync = false) | |
148 | 249 | { |
149 | 250 | if (useAsync && !forceAsync) |
150 | 251 | { |
151 | fb_assert(!mainMutex.locked()); | |
152 | } | |
153 | return useAsync ? &asyncMutex : &mainMutex; | |
252 | fb_assert(!mainSync.locked()); | |
253 | } | |
254 | return useAsync ? &async : &mainSync; | |
154 | 255 | } |
155 | 256 | |
156 | 257 | Firebird::Mutex* getBlockingMutex() |
160 | 261 | |
161 | 262 | void cancel() |
162 | 263 | { |
163 | fb_assert(asyncMutex.locked()); | |
164 | fb_assert(mainMutex.locked()); | |
264 | fb_assert(async.locked()); | |
265 | fb_assert(mainSync.locked()); | |
165 | 266 | att = NULL; |
166 | 267 | } |
167 | 268 | |
183 | 284 | Attachment* att; |
184 | 285 | JAttachment* jAtt; |
185 | 286 | |
186 | // These mutexes guarantee attachment existence. After releasing both of them with possibly | |
287 | // These syncs guarantee attachment existence. After releasing both of them with possibly | |
187 | 288 | // zero att_use_count one should check does attachment still exists calling getHandle(). |
188 | Firebird::Mutex mainMutex, asyncMutex; | |
289 | Sync mainSync, async; | |
189 | 290 | // This mutex guarantees attachment is not accessed by more than single external thread. |
190 | 291 | Firebird::Mutex blockingMutex; |
191 | 292 | }; |
293 | ||
294 | typedef Firebird::RaiiLockGuard<StableAttachmentPart::Sync> AttSyncLockGuard; | |
295 | typedef Firebird::RaiiUnlockGuard<StableAttachmentPart::Sync> AttSyncUnlockGuard; | |
192 | 296 | |
193 | 297 | // |
194 | 298 | // the attachment block; one is created for each attachment to a database |
214 | 318 | ~SyncGuard() |
215 | 319 | { |
216 | 320 | if (jStable) |
217 | jStable->getMutex()->leave(); | |
321 | jStable->getSync()->leave(); | |
218 | 322 | } |
219 | 323 | |
220 | 324 | private: |
385 | 489 | } |
386 | 490 | |
387 | 491 | JAttachment* getInterface() throw(); |
492 | void setInterface(JAttachment* iface) throw(); | |
388 | 493 | UserId* getUserId(const Firebird::string &userName); |
389 | 494 | |
390 | 495 | JProvider* getProvider() |
273 | 273 | : PermanentStorage(*tdbb->getDatabase()->dbb_permanent), |
274 | 274 | sync(this), |
275 | 275 | keyName(getPool()), |
276 | currentPage(0), | |
276 | 277 | keyProviders(getPool()), |
277 | 278 | keyConsumers(getPool()), |
278 | 279 | hash(getPool()), |
857 | 858 | if (!LCK_lock(tdbb, threadLock, LCK_EX, LCK_NO_WAIT)) |
858 | 859 | { |
859 | 860 | // Cleanup lock manager error |
860 | fb_utils::init_status(tdbb->tdbb_status_vector); | |
861 | tdbb->tdbb_status_vector->init(); | |
861 | 862 | |
862 | 863 | return; |
863 | 864 | } |
922 | 923 | return; |
923 | 924 | } |
924 | 925 | |
925 | // Establish temp context | |
926 | // Needed to take crypt thread lock | |
927 | UserId user; | |
928 | user.usr_user_name = "Database Crypter"; | |
929 | ||
930 | Jrd::Attachment* const attachment = Jrd::Attachment::create(&dbb, NULL); | |
931 | RefPtr<SysStableAttachment> sAtt(FB_NEW SysStableAttachment(attachment)); | |
932 | attachment->setStable(sAtt); | |
933 | attachment->att_filename = dbb.dbb_filename; | |
934 | attachment->att_user = &user; | |
935 | ||
936 | BackgroundContextHolder tempDbb(&dbb, attachment, &status_vector, FB_FUNCTION); | |
937 | ||
938 | LCK_init(tempDbb, LCK_OWNER_attachment); | |
939 | PAG_header(tempDbb, true); | |
940 | PAG_attachment_id(tempDbb); | |
941 | ||
942 | sAtt->initDone(); | |
926 | // Establish temp context needed to take crypt thread lock | |
927 | ThreadContextHolder tempDbb(&dbb, NULL, &status_vector); | |
943 | 928 | |
944 | 929 | // Take exclusive threadLock |
945 | 930 | // If can't take that lock - nothing to do, cryptThread already runs somewhere |
946 | 931 | if (!LCK_lock(tempDbb, threadLock, LCK_EX, LCK_NO_WAIT)) |
947 | { | |
948 | Monitoring::cleanupAttachment(tempDbb); | |
949 | attachment->releaseLocks(tempDbb); | |
950 | LCK_fini(tempDbb, LCK_OWNER_attachment); | |
951 | 932 | return; |
952 | } | |
953 | 933 | |
954 | 934 | try |
955 | 935 | { |
975 | 955 | dbb.dbb_database_name.c_str(), writer.getBufferLength(), writer.getBuffer())); |
976 | 956 | check(&status_vector); |
977 | 957 | |
978 | MutexLockGuard attGuard(*(jAtt->getStable()->getMutex()), FB_FUNCTION); | |
958 | AttSyncLockGuard attGuard(*(jAtt->getStable()->getSync()), FB_FUNCTION); | |
979 | 959 | Attachment* att = jAtt->getHandle(); |
980 | 960 | if (!att) |
981 | 961 | Arg::Gds(isc_att_shutdown).raise(); |
1076 | 1056 | // Release exclusive lock on StartCryptThread |
1077 | 1057 | lckRelease = true; |
1078 | 1058 | LCK_release(tempDbb, threadLock); |
1079 | Monitoring::cleanupAttachment(tempDbb); | |
1080 | attachment->releaseLocks(tempDbb); | |
1081 | LCK_fini(tempDbb, LCK_OWNER_attachment); | |
1082 | 1059 | } |
1083 | 1060 | catch (const Exception&) |
1084 | 1061 | { |
1088 | 1065 | { |
1089 | 1066 | // Release exclusive lock on StartCryptThread |
1090 | 1067 | LCK_release(tempDbb, threadLock); |
1091 | Monitoring::cleanupAttachment(tempDbb); | |
1092 | attachment->releaseLocks(tempDbb); | |
1093 | LCK_fini(tempDbb, LCK_OWNER_attachment); | |
1094 | 1068 | } |
1095 | 1069 | } |
1096 | 1070 | catch (const Exception&) |
1325 | 1299 | return 0; |
1326 | 1300 | } |
1327 | 1301 | |
1328 | ULONG CryptoManager::getCurrentPage() const | |
1329 | { | |
1330 | return process ? currentPage : 0; | |
1302 | ULONG CryptoManager::getCurrentPage(thread_db* tdbb) const | |
1303 | { | |
1304 | if (!process) | |
1305 | return 0; | |
1306 | ||
1307 | if (currentPage) | |
1308 | return currentPage; | |
1309 | ||
1310 | CchHdr hdr(tdbb, LCK_read); | |
1311 | return hdr->hdr_crypt_page; | |
1331 | 1312 | } |
1332 | 1313 | |
1333 | 1314 | ULONG CryptoManager::getLastPage(thread_db* tdbb) |
1335 | 1316 | return PAG_last_page(tdbb) + 1; |
1336 | 1317 | } |
1337 | 1318 | |
1338 | UCHAR CryptoManager::getCurrentState() const | |
1339 | { | |
1340 | return (crypt ? fb_info_crypt_encrypted : 0) | (process ? fb_info_crypt_process : 0); | |
1319 | UCHAR CryptoManager::getCurrentState(thread_db* tdbb) const | |
1320 | { | |
1321 | bool p = process; | |
1322 | bool c = crypt; | |
1323 | if (!currentPage) | |
1324 | { | |
1325 | CchHdr hdr(tdbb, LCK_read); | |
1326 | ||
1327 | p = hdr->hdr_flags & Ods::hdr_crypt_process; | |
1328 | c = hdr->hdr_flags & Ods::hdr_encrypted; | |
1329 | } | |
1330 | ||
1331 | return (c ? fb_info_crypt_encrypted : 0) | (p ? fb_info_crypt_process : 0); | |
1341 | 1332 | } |
1342 | 1333 | |
1343 | 1334 | const char* CryptoManager::getKeyName() const |
298 | 298 | bool checkValidation(Firebird::IDbCryptPlugin* crypt); |
299 | 299 | void setDbInfo(Firebird::IDbCryptPlugin* cp); |
300 | 300 | |
301 | ULONG getCurrentPage() const; | |
302 | UCHAR getCurrentState() const; | |
301 | ULONG getCurrentPage(thread_db* tdbb) const; | |
302 | UCHAR getCurrentState(thread_db* tdbb) const; | |
303 | 303 | const char* getKeyName() const; |
304 | 304 | |
305 | 305 | private: |
123 | 123 | check("IAttachment::getInfo", &st); |
124 | 124 | |
125 | 125 | int dialect = SQL_DIALECT_V5; // reasonable default |
126 | const UCHAR* p = buffer; | |
127 | while (*p != isc_info_end && *p != isc_info_truncated && p < buffer + sizeof(buffer)) | |
126 | ||
127 | for (ClumpletReader p(ClumpletReader::InfoResponse, buffer, sizeof(buffer)); !p.isEof(); p.moveNext()) | |
128 | 128 | { |
129 | const UCHAR item = (UCHAR) *p++; | |
130 | const USHORT length = gds__vax_integer(p, sizeof(USHORT)); | |
131 | p += sizeof(USHORT); | |
132 | ||
133 | switch (item) | |
129 | switch (p.getClumpTag()) | |
134 | 130 | { |
135 | 131 | case isc_info_db_sql_dialect: |
136 | dialect = gds__vax_integer(p, length); | |
132 | dialect = p.getInt(); | |
137 | 133 | break; |
138 | 134 | } |
139 | ||
140 | p += length; | |
141 | 135 | } |
142 | 136 | |
143 | 137 | JRD_make_role_name(role, dialect); |
735 | 735 | { |
736 | 736 | StaticStatusVector s; |
737 | 737 | ex.stuffException(s); |
738 | if (!fb_utils::containsErrorCode(s.begin(), isc_instance_conflict)) | |
739 | iscLogException("MappingIpc: Cannot initialize the shared memory region", ex); | |
738 | iscLogException("MappingIpc: Cannot initialize the shared memory region", ex); | |
740 | 739 | throw; |
741 | 740 | } |
742 | 741 | fb_assert(tempSharedMemory->getHeader()->mhb_header_version == MemoryHeader::HEADER_VERSION); |
873 | 873 | |
874 | 874 | // crypt thread status |
875 | 875 | if (database->dbb_crypto_manager) |
876 | record.storeInteger(f_mon_db_crypt_page, database->dbb_crypto_manager->getCurrentPage()); | |
876 | record.storeInteger(f_mon_db_crypt_page, database->dbb_crypto_manager->getCurrentPage(tdbb)); | |
877 | 877 | |
878 | 878 | // database owner |
879 | 879 | record.storeString(f_mon_db_owner, database->dbb_owner); |
556 | 556 | |
557 | 557 | if (!(tail->opt_conjunct_flags & opt_conjunct_used) && |
558 | 558 | node->computable(csb, stream, true) && |
559 | node->findStream(csb, stream) && | |
559 | 560 | !invCandidate->matches.exist(node)) |
560 | 561 | { |
561 | 562 | const ComparativeBoolNode* const cmpNode = node->as<ComparativeBoolNode>(); |
2989 | 2990 | { |
2990 | 2991 | IndexRelationship* relationship = stream->indexedRelationships[j]; |
2991 | 2992 | InnerJoinStreamInfo* relationStreamInfo = getStreamInfo(relationship->stream); |
2992 | if (!relationStreamInfo->used) | |
2993 | { | |
2994 | bool found = false; | |
2995 | IndexRelationship** processRelationship = processList->begin(); | |
2996 | FB_SIZE_T index; | |
2997 | for (index = 0; index < processList->getCount(); index++) | |
2998 | { | |
2999 | if (relationStreamInfo->stream == processRelationship[index]->stream) | |
2993 | ||
2994 | if (relationStreamInfo->used) | |
2995 | continue; | |
2996 | ||
2997 | bool usable = true; | |
2998 | for (const StreamType* depStream = relationship->depStreams.begin(); | |
2999 | depStream != relationship->depStreams.end(); ++depStream) | |
3000 | { | |
3001 | if (!(csb->csb_rpt[*depStream].csb_flags & csb_active)) | |
3002 | { | |
3003 | usable = false; | |
3004 | break; | |
3005 | } | |
3006 | } | |
3007 | ||
3008 | if (!usable) | |
3009 | continue; | |
3010 | ||
3011 | bool found = false; | |
3012 | IndexRelationship** processRelationship = processList->begin(); | |
3013 | FB_SIZE_T index; | |
3014 | for (index = 0; index < processList->getCount(); index++) | |
3015 | { | |
3016 | if (relationStreamInfo->stream == processRelationship[index]->stream) | |
3017 | { | |
3018 | // If the cost of this relationship is cheaper then remove the | |
3019 | // old relationship and add this one. | |
3020 | if (cheaperRelationship(relationship, processRelationship[index])) | |
3000 | 3021 | { |
3001 | // If the cost of this relationship is cheaper then remove the | |
3002 | // old relationship and add this one. | |
3003 | if (cheaperRelationship(relationship, processRelationship[index])) | |
3004 | { | |
3005 | processList->remove(index); | |
3006 | break; | |
3007 | } | |
3008 | ||
3009 | found = true; | |
3022 | processList->remove(index); | |
3010 | 3023 | break; |
3011 | 3024 | } |
3012 | } | |
3013 | if (!found) | |
3014 | { | |
3015 | // Add relationship sorted on cost (cheapest as first) | |
3016 | IndexRelationship** relationships = processList->begin(); | |
3017 | for (index = 0; index < processList->getCount(); index++) | |
3018 | { | |
3019 | if (cheaperRelationship(relationship, relationships[index])) | |
3020 | break; | |
3021 | } | |
3022 | processList->insert(index, relationship); | |
3023 | } | |
3024 | } | |
3025 | ||
3026 | found = true; | |
3027 | break; | |
3028 | } | |
3029 | } | |
3030 | ||
3031 | if (found) | |
3032 | continue; | |
3033 | ||
3034 | // Add relationship sorted on cost (cheapest as first) | |
3035 | IndexRelationship** relationships = processList->begin(); | |
3036 | for (index = 0; index < processList->getCount(); index++) | |
3037 | { | |
3038 | if (cheaperRelationship(relationship, relationships[index])) | |
3039 | break; | |
3040 | } | |
3041 | processList->insert(index, relationship); | |
3025 | 3042 | } |
3026 | 3043 | |
3027 | 3044 | IndexRelationship** nextRelationship = processList->begin(); |
3101 | 3118 | } |
3102 | 3119 | |
3103 | 3120 | if (found) |
3121 | continue; | |
3122 | ||
3123 | if (candidate->dependentFromStreams.getCount() > IndexRelationship::MAX_DEP_STREAMS) | |
3104 | 3124 | continue; |
3105 | 3125 | |
3106 | 3126 | // If we could use more conjunctions on the testing stream |
3113 | 3133 | indexRelationship->cardinality = candidate->unique ? |
3114 | 3134 | csb_tail->csb_cardinality : csb_tail->csb_cardinality * candidate->selectivity; |
3115 | 3135 | |
3136 | for (const StreamType* depStream = candidate->dependentFromStreams.begin(); | |
3137 | depStream != candidate->dependentFromStreams.end(); ++depStream) | |
3138 | { | |
3139 | indexRelationship->depStreams.add(*depStream); | |
3140 | } | |
3141 | ||
3116 | 3142 | // indexRelationship are kept sorted on cost and unique in the indexRelations array. |
3117 | 3143 | // The unique and cheapest indexed relatioships are on the first position. |
3118 | 3144 | FB_SIZE_T index = 0; |
239 | 239 | : stream(0), unique(false), cost(0), cardinality(0) |
240 | 240 | {} |
241 | 241 | |
242 | static const unsigned MAX_DEP_STREAMS = 8; | |
243 | ||
242 | 244 | StreamType stream; |
243 | 245 | bool unique; |
244 | 246 | double cost; |
245 | 247 | double cardinality; |
248 | Firebird::Vector<StreamType, MAX_DEP_STREAMS> depStreams; | |
246 | 249 | }; |
247 | 250 | |
248 | 251 | typedef Firebird::Array<IndexRelationship*> IndexedRelationships; |
117 | 117 | while (thr.hasData()) |
118 | 118 | { |
119 | 119 | FB_SIZE_T n = thr.getCount() - 1; |
120 | Thrd& t = thr[n]; | |
120 | Thrd t = thr[n]; | |
121 | thr.remove(n); | |
121 | 122 | { |
122 | 123 | Firebird::MutexUnlockGuard u(threadsMutex, FB_FUNCTION); |
123 | 124 | Thread::waitForCompletion(t.hndl); |
124 | 125 | fb_assert(t.ending); |
125 | 126 | } |
126 | thr.remove(n); | |
127 | 127 | } |
128 | 128 | } |
129 | 129 |
2 | 2 | *** DO NOT EDIT *** |
3 | 3 | TO CHANGE ANY INFORMATION IN HERE PLEASE |
4 | 4 | EDIT src/misc/writeBuildNum.sh |
5 | FORMAL BUILD NUMBER:33601 | |
5 | FORMAL BUILD NUMBER:33637 | |
6 | 6 | */ |
7 | 7 | |
8 | #define PRODUCT_VER_STRING "3.0.10.33601" | |
9 | #define FILE_VER_STRING "WI-V3.0.10.33601" | |
10 | #define LICENSE_VER_STRING "WI-V3.0.10.33601" | |
11 | #define FILE_VER_NUMBER 3, 0, 10, 33601 | |
8 | #define PRODUCT_VER_STRING "3.0.11.33637" | |
9 | #define FILE_VER_STRING "WI-V3.0.11.33637" | |
10 | #define LICENSE_VER_STRING "WI-V3.0.11.33637" | |
11 | #define FILE_VER_NUMBER 3, 0, 11, 33637 | |
12 | 12 | #define FB_MAJOR_VER "3" |
13 | 13 | #define FB_MINOR_VER "0" |
14 | #define FB_REV_NO "10" | |
15 | #define FB_BUILD_NO "33601" | |
14 | #define FB_REV_NO "11" | |
15 | #define FB_BUILD_NO "33637" | |
16 | 16 | #define FB_BUILD_TYPE "V" |
17 | 17 | #define FB_BUILD_SUFFIX "Firebird 3.0" |
4456 | 4456 | jrd_rel *relation = (*relations)[rel_id]; |
4457 | 4457 | fb_assert(relation); |
4458 | 4458 | |
4459 | relation->rel_flags |= REL_check_partners; | |
4459 | 4460 | LCK_lock(tdbb, relation->rel_partners_lock, LCK_EX, LCK_WAIT); |
4460 | 4461 | LCK_release(tdbb, relation->rel_partners_lock); |
4461 | relation->rel_flags |= REL_check_partners; | |
4462 | 4462 | } |
4463 | 4463 | |
4464 | 4464 | |
4824 | 4824 | case 4: |
4825 | 4825 | relation = MET_lookup_relation_id(tdbb, work->dfw_id, true); |
4826 | 4826 | if (!relation) { |
4827 | fb_assert(false); | |
4827 | 4828 | return false; |
4828 | 4829 | } |
4829 | 4830 |
1642 | 1642 | { |
1643 | 1643 | m_saveConnection = attachment->att_ext_connection; |
1644 | 1644 | m_stable = attachment->getStable(); |
1645 | m_stable->getMutex()->leave(); | |
1646 | ||
1647 | MutexLockGuard guardAsync(*m_stable->getMutex(true, true), FB_FUNCTION); | |
1648 | MutexLockGuard guardMain(*m_stable->getMutex(), FB_FUNCTION); | |
1645 | m_stable->getSync()->leave(); | |
1646 | ||
1647 | Jrd::AttSyncLockGuard guardAsync(*m_stable->getSync(true, true), FB_FUNCTION); | |
1648 | Jrd::AttSyncLockGuard guardMain(*m_stable->getSync(), FB_FUNCTION); | |
1649 | 1649 | if (m_stable->getHandle() == attachment) |
1650 | 1650 | attachment->att_ext_connection = &conn; |
1651 | 1651 | } |
1667 | 1667 | Jrd::Attachment* attachment = m_tdbb->getAttachment(); |
1668 | 1668 | if (attachment && m_stable.hasData()) |
1669 | 1669 | { |
1670 | MutexLockGuard guardAsync(*m_stable->getMutex(true, true), FB_FUNCTION); | |
1671 | m_stable->getMutex()->enter(FB_FUNCTION); | |
1670 | Jrd::AttSyncLockGuard guardAsync(*m_stable->getSync(true, true), FB_FUNCTION); | |
1671 | m_stable->getSync()->enter(FB_FUNCTION); | |
1672 | 1672 | |
1673 | 1673 | if (m_stable->getHandle() == attachment) |
1674 | 1674 | attachment->att_ext_connection = m_saveConnection; |
1675 | 1675 | else |
1676 | m_stable->getMutex()->leave(); | |
1676 | m_stable->getSync()->leave(); | |
1677 | 1677 | } |
1678 | 1678 | |
1679 | 1679 | jrd_tra* transaction = m_tdbb->getTransaction(); |
162 | 162 | raise(&status, tdbb, "isc_database_info"); |
163 | 163 | } |
164 | 164 | |
165 | const char* p = buff, *end = buff + sizeof(buff); | |
166 | while (p < end) | |
167 | { | |
168 | const UCHAR item = *p++; | |
169 | const USHORT len = m_iscProvider.isc_vax_integer(p, sizeof(USHORT)); | |
170 | p += sizeof(USHORT); | |
171 | ||
172 | switch (item) | |
165 | for (ClumpletReader p(ClumpletReader::InfoResponse, (UCHAR*)buff, sizeof(buff)); !p.isEof(); p.moveNext()) | |
166 | { | |
167 | const UCHAR* b = p.getBytes(); | |
168 | switch (p.getClumpTag()) | |
173 | 169 | { |
174 | 170 | case isc_info_db_sql_dialect: |
175 | m_sqlDialect = m_iscProvider.isc_vax_integer(p, len); | |
171 | m_sqlDialect = p.getInt(); | |
176 | 172 | break; |
177 | 173 | |
178 | 174 | case isc_info_error: |
179 | if (*p == isc_info_db_sql_dialect) | |
175 | if (p.getClumpLength() > 1 && b[0] == isc_info_db_sql_dialect) | |
180 | 176 | { |
181 | const ULONG err = m_iscProvider.isc_vax_integer(p + 1, len - 1); | |
177 | const ULONG err = m_iscProvider.isc_vax_integer((const char*)(b + 1), p.getClumpLength() - 1); | |
182 | 178 | if (err == isc_infunk) |
183 | 179 | { |
184 | 180 | // Remote server don't understand isc_info_db_sql_dialect. |
191 | 187 | |
192 | 188 | case isc_info_truncated: |
193 | 189 | ERR_post(Arg::Gds(isc_random) << Arg::Str("Unexpected error in isc_database_info")); |
194 | ||
195 | case isc_info_end: | |
196 | p = end; | |
197 | break; | |
198 | 190 | } |
199 | p += len; | |
200 | 191 | } |
201 | 192 | } |
202 | 193 |
765 | 765 | |
766 | 766 | case fb_info_crypt_state: |
767 | 767 | length = INF_convert(dbb->dbb_crypto_manager ? |
768 | dbb->dbb_crypto_manager->getCurrentState() : 0, buffer); | |
768 | dbb->dbb_crypto_manager->getCurrentState(tdbb) : 0, buffer); | |
769 | 769 | break; |
770 | 770 | |
771 | 771 | case fb_info_crypt_key: |
455 | 455 | |
456 | 456 | struct AttShutParams |
457 | 457 | { |
458 | Semaphore thdStartedSem; | |
458 | Semaphore thdStartedSem, startCallCompleteSem; | |
459 | 459 | Thread::Handle thrHandle; |
460 | 460 | AttachmentsRefHolder* attachments; |
461 | 461 | }; |
699 | 699 | { |
700 | 700 | |
701 | 701 | if (!nolock) |
702 | sAtt->getMutex(async)->enter(from); | |
702 | sAtt->getSync(async)->enter(from); | |
703 | 703 | |
704 | 704 | Jrd::Attachment* attachment = sAtt->getHandle(); // Must be done after entering mutex |
705 | 705 | |
723 | 723 | catch (const Firebird::Exception&) |
724 | 724 | { |
725 | 725 | if (!nolock) |
726 | sAtt->getMutex(async)->leave(); | |
726 | sAtt->getSync(async)->leave(); | |
727 | 727 | throw; |
728 | 728 | } |
729 | 729 | } |
743 | 743 | attachment->att_use_count--; |
744 | 744 | |
745 | 745 | if (!nolock) |
746 | sAtt->getMutex(async)->leave(); | |
746 | sAtt->getSync(async)->leave(); | |
747 | 747 | |
748 | 748 | if (blocking) |
749 | 749 | sAtt->getBlockingMutex()->leave(); |
2995 | 2995 | try |
2996 | 2996 | { |
2997 | 2997 | EngineContextHolder tdbb(user_status, this, FB_FUNCTION, AttachmentHolder::ATT_LOCK_ASYNC); |
2998 | Jrd::Attachment* attachment = getHandle(); | |
2998 | Attachment* attachment = getHandle(); | |
2999 | 2999 | Database* const dbb = tdbb->getDatabase(); |
3000 | 3000 | |
3001 | 3001 | try |
3002 | 3002 | { |
3003 | MutexEnsureUnlock guard(*(getStable()->getMutex()), FB_FUNCTION); | |
3003 | EnsureUnlock<StableAttachmentPart::Sync, NotRefCounted> guard(*(getStable()->getSync()), FB_FUNCTION); | |
3004 | 3004 | if (!guard.tryEnter()) |
3005 | 3005 | { |
3006 | 3006 | status_exception::raise(Arg::Gds(isc_attachment_in_use)); |
4493 | 4493 | } |
4494 | 4494 | |
4495 | 4495 | // Make Attachment::destroy() happy |
4496 | MutexLockGuard async(*getMutex(true), FB_FUNCTION); | |
4497 | MutexLockGuard sync(*getMutex(), FB_FUNCTION); | |
4496 | AttSyncLockGuard async(*getSync(true), FB_FUNCTION); | |
4497 | AttSyncLockGuard sync(*getSync(), FB_FUNCTION); | |
4498 | 4498 | |
4499 | 4499 | Jrd::Attachment::destroy(attachment); |
4500 | 4500 | } |
6962 | 6962 | **************************************/ |
6963 | 6963 | SET_TDBB(tdbb); |
6964 | 6964 | |
6965 | Mutex* const attMutex = sAtt->getMutex(); | |
6966 | fb_assert(attMutex->locked()); | |
6965 | StableAttachmentPart::Sync* const attSync = sAtt->getSync(); | |
6966 | fb_assert(attSync->locked()); | |
6967 | 6967 | |
6968 | 6968 | Jrd::Attachment* attachment = sAtt->getHandle(); |
6969 | 6969 | |
6978 | 6978 | attachment->att_use_count--; |
6979 | 6979 | |
6980 | 6980 | { // scope |
6981 | MutexUnlockGuard cout(*attMutex, FB_FUNCTION); | |
6981 | AttSyncUnlockGuard cout(*attSync, FB_FUNCTION); | |
6982 | 6982 | // !!!!!!!!!!!!!!!!! - event? semaphore? condvar? (when ATT_purge_started / sAtt->getHandle() changes) |
6983 | 6983 | |
6984 | fb_assert(!attMutex->locked()); | |
6984 | fb_assert(!attSync->locked()); | |
6985 | 6985 | Thread::yield(); |
6986 | 6986 | Thread::sleep(1); |
6987 | 6987 | } |
7005 | 7005 | attachment->att_use_count--; |
7006 | 7006 | |
7007 | 7007 | { // scope |
7008 | MutexUnlockGuard cout(*attMutex, FB_FUNCTION); | |
7008 | AttSyncUnlockGuard cout(*attSync, FB_FUNCTION); | |
7009 | 7009 | // !!!!!!!!!!!!!!!!! - event? semaphore? condvar? (when --att_use_count) |
7010 | 7010 | |
7011 | fb_assert(!attMutex->locked()); | |
7011 | fb_assert(!attSync->locked()); | |
7012 | 7012 | Thread::yield(); |
7013 | 7013 | Thread::sleep(1); |
7014 | 7014 | } |
7019 | 7019 | attachment->att_use_count++; |
7020 | 7020 | } |
7021 | 7021 | |
7022 | fb_assert(attMutex->locked()); | |
7022 | fb_assert(attSync->locked()); | |
7023 | 7023 | |
7024 | 7024 | if (!attachment) |
7025 | 7025 | return; |
7135 | 7135 | attachment->att_trace_manager->event_detach(&conn, false); |
7136 | 7136 | } |
7137 | 7137 | |
7138 | fb_assert(attMutex->locked()); | |
7139 | Mutex* asyncMutex = sAtt->getMutex(true, true); | |
7140 | MutexEnsureUnlock asyncGuard(*asyncMutex, FB_FUNCTION); | |
7138 | fb_assert(attSync->locked()); | |
7139 | StableAttachmentPart::Sync* attAsync = sAtt->getSync(true, true); | |
7140 | EnsureUnlock<StableAttachmentPart::Sync, NotRefCounted> asyncGuard(*attAsync, FB_FUNCTION); | |
7141 | 7141 | |
7142 | 7142 | { // scope - ensure correct order of taking both async and main mutexes |
7143 | MutexUnlockGuard cout(*attMutex, FB_FUNCTION); | |
7144 | fb_assert(!attMutex->locked()); | |
7143 | AttSyncUnlockGuard cout(*attSync, FB_FUNCTION); | |
7144 | fb_assert(!attSync->locked()); | |
7145 | 7145 | asyncGuard.enter(); |
7146 | 7146 | } |
7147 | 7147 | |
7154 | 7154 | release_attachment(tdbb, attachment); |
7155 | 7155 | |
7156 | 7156 | asyncGuard.leave(); |
7157 | MutexUnlockGuard cout(*attMutex, FB_FUNCTION); | |
7157 | AttSyncUnlockGuard cout(*attSync, FB_FUNCTION); | |
7158 | 7158 | MutexUnlockGuard coutBlocking(*sAtt->getBlockingMutex(), FB_FUNCTION); |
7159 | 7159 | |
7160 | 7160 | // Try to close database if there are no attachments |
7443 | 7443 | { |
7444 | 7444 | StableAttachmentPart* const sAtt = *iter; |
7445 | 7445 | |
7446 | MutexLockGuard guard(*(sAtt->getMutex(true)), FB_FUNCTION); | |
7447 | Attachment* const attachment = sAtt->getHandle(); | |
7446 | AttSyncLockGuard guard(*(sAtt->getSync(true)), FB_FUNCTION); | |
7447 | Attachment* attachment = sAtt->getHandle(); | |
7448 | 7448 | |
7449 | 7449 | if (attachment && !(attachment->att_flags & ATT_shutdown)) |
7450 | 7450 | attachment->signalShutdown(); |
7458 | 7458 | StableAttachmentPart* const sAtt = *iter; |
7459 | 7459 | |
7460 | 7460 | MutexLockGuard guardBlocking(*(sAtt->getBlockingMutex()), FB_FUNCTION); |
7461 | MutexLockGuard guard(*(sAtt->getMutex()), FB_FUNCTION); | |
7461 | AttSyncLockGuard guard(*(sAtt->getSync()), FB_FUNCTION); | |
7462 | 7462 | Attachment* attachment = sAtt->getHandle(); |
7463 | 7463 | |
7464 | 7464 | if (attachment) |
7497 | 7497 | |
7498 | 7498 | AttShutParams* params = static_cast<AttShutParams*>(arg); |
7499 | 7499 | AttachmentsRefHolder* attachments = params->attachments; |
7500 | ||
7501 | try | |
7502 | { | |
7503 | params->startCallCompleteSem.enter(); | |
7504 | } | |
7505 | catch (const Exception& ex) | |
7506 | { | |
7507 | iscLogException("attachmentShutdownThread", ex); | |
7508 | return 0; | |
7509 | } | |
7510 | ||
7500 | 7511 | Thread::Handle th = params->thrHandle; |
7501 | 7512 | fb_assert(th); |
7502 | 7513 | |
7523 | 7534 | static void waitForShutdown(Semaphore& shutdown_semaphore) |
7524 | 7535 | { |
7525 | 7536 | const int pid = getpid(); |
7526 | unsigned int timeout = 10000; // initial value, 10 sec | |
7537 | unsigned int timeout = 10; // initial value, 10 sec | |
7527 | 7538 | bool done = false; |
7528 | 7539 | |
7529 | 7540 | for (int i = 0; i < 5; i++) |
7753 | 7764 | if (checkCancelState(punt)) |
7754 | 7765 | return true; |
7755 | 7766 | |
7756 | { // checkout scope | |
7767 | StableAttachmentPart::Sync* sync = this->getAttachment()->getStable()->getSync(); | |
7768 | Database* dbb = this->getDatabase(); | |
7769 | ||
7770 | if (sync->hasContention()) | |
7771 | { | |
7772 | FB_UINT64 cnt = sync->getLockCounter(); | |
7773 | ||
7757 | 7774 | EngineCheckout cout(this, FB_FUNCTION); |
7758 | 7775 | Thread::yield(); |
7776 | ||
7777 | while (sync->hasContention() && (sync->getLockCounter() == cnt)) | |
7778 | Thread::sleep(1); | |
7759 | 7779 | } |
7760 | 7780 | |
7761 | 7781 | if (checkCancelState(punt)) |
8207 | 8227 | AttShutParams params; |
8208 | 8228 | params.attachments = queue; |
8209 | 8229 | Thread::start(attachmentShutdownThread, ¶ms, THREAD_high, ¶ms.thrHandle); |
8230 | params.startCallCompleteSem.release(); | |
8231 | ||
8210 | 8232 | queue.release(); |
8211 | 8233 | shutThreadCollect->houseKeeping(); |
8212 | 8234 | params.thdStartedSem.enter(); |
8258 | 8280 | { |
8259 | 8281 | StableAttachmentPart* const sAtt = *iter; |
8260 | 8282 | |
8261 | MutexLockGuard guard(*(sAtt->getMutex(true)), FB_FUNCTION); | |
8283 | AttSyncLockGuard guard(*(sAtt->getSync(true)), FB_FUNCTION); | |
8262 | 8284 | Attachment* const attachment = sAtt->getHandle(); |
8263 | 8285 | |
8264 | 8286 | if (attachment && !(attachment->att_flags & ATT_shutdown)) |
8268 | 8290 | AttShutParams params; |
8269 | 8291 | params.attachments = queue; |
8270 | 8292 | Thread::start(attachmentShutdownThread, ¶ms, THREAD_high, ¶ms.thrHandle); |
8293 | params.startCallCompleteSem.release(); | |
8294 | ||
8271 | 8295 | queue.release(); |
8272 | 8296 | shutThreadCollect->houseKeeping(); |
8273 | 8297 | params.thdStartedSem.enter(); |
937 | 937 | fb_assert(optional || m_ref.hasData()); |
938 | 938 | |
939 | 939 | if (m_ref.hasData()) |
940 | m_ref->getMutex()->leave(); | |
940 | m_ref->getSync()->leave(); | |
941 | 941 | } |
942 | 942 | |
943 | 943 | EngineCheckout(Attachment* att, const char* from) |
948 | 948 | if (att && att->att_use_count) |
949 | 949 | { |
950 | 950 | m_ref = att->getStable(); |
951 | m_ref->getMutex()->leave(); | |
951 | m_ref->getSync()->leave(); | |
952 | 952 | } |
953 | 953 | } |
954 | 954 | |
955 | 955 | ~EngineCheckout() |
956 | 956 | { |
957 | 957 | if (m_ref.hasData()) |
958 | m_ref->getMutex()->enter(m_from); | |
958 | m_ref->getSync()->enter(m_from); | |
959 | 959 | |
960 | 960 | // If we were signalled to cancel/shutdown, react as soon as possible. |
961 | 961 | // We cannot throw immediately, but we can reschedule ourselves. |
369 | 369 | continue; |
370 | 370 | |
371 | 371 | // signal other processes |
372 | relation->rel_flags |= REL_check_partners; | |
372 | 373 | LCK_lock(tdbb, relation->rel_partners_lock, LCK_EX, LCK_WAIT); |
373 | 374 | LCK_release(tdbb, relation->rel_partners_lock); |
374 | relation->rel_flags |= REL_check_partners; | |
375 | 375 | } |
376 | 376 | } |
377 | 377 | |
2919 | 2919 | if (check_relation != relation) |
2920 | 2920 | { |
2921 | 2921 | LCK_release(tdbb, check_relation->rel_existence_lock); |
2922 | LCK_release(tdbb, check_relation->rel_partners_lock); | |
2922 | if (!(check_relation->rel_flags & REL_check_partners)) | |
2923 | { | |
2924 | check_relation->rel_flags |= REL_check_partners; | |
2925 | LCK_release(tdbb, check_relation->rel_partners_lock); | |
2926 | check_relation->rel_flags &= ~REL_check_partners; | |
2927 | } | |
2923 | 2928 | LCK_release(tdbb, check_relation->rel_rescan_lock); |
2924 | check_relation->rel_flags &= ~REL_check_partners; | |
2925 | 2929 | check_relation->rel_flags |= REL_deleted; |
2926 | 2930 | } |
2927 | 2931 | } |
3002 | 3006 | if (check_relation != relation) |
3003 | 3007 | { |
3004 | 3008 | LCK_release(tdbb, check_relation->rel_existence_lock); |
3005 | LCK_release(tdbb, check_relation->rel_partners_lock); | |
3009 | if (!(check_relation->rel_flags & REL_check_partners)) | |
3010 | { | |
3011 | check_relation->rel_flags |= REL_check_partners; | |
3012 | LCK_release(tdbb, check_relation->rel_partners_lock); | |
3013 | check_relation->rel_flags &= ~REL_check_partners; | |
3014 | } | |
3006 | 3015 | LCK_release(tdbb, check_relation->rel_rescan_lock); |
3007 | check_relation->rel_flags &= ~REL_check_partners; | |
3008 | 3016 | check_relation->rel_flags |= REL_deleted; |
3009 | 3017 | } |
3010 | 3018 | } |
4366 | 4374 | |
4367 | 4375 | if (relation->rel_use_count) |
4368 | 4376 | relation->rel_flags |= REL_blocking; |
4369 | else | |
4377 | else if (!(relation->rel_flags & REL_deleting)) | |
4370 | 4378 | { |
4371 | 4379 | relation->rel_flags &= ~REL_blocking; |
4372 | 4380 | relation->rel_flags |= REL_check_existence; |
4391 | 4399 | |
4392 | 4400 | AsyncContextHolder tdbb(dbb, FB_FUNCTION, relation->rel_partners_lock); |
4393 | 4401 | |
4394 | LCK_release(tdbb, relation->rel_partners_lock); | |
4395 | relation->rel_flags |= REL_check_partners; | |
4402 | if (!(relation->rel_flags & REL_check_partners)) | |
4403 | { | |
4404 | relation->rel_flags |= REL_check_partners; | |
4405 | LCK_release(tdbb, relation->rel_partners_lock); | |
4406 | } | |
4396 | 4407 | } |
4397 | 4408 | catch (const Exception&) |
4398 | 4409 | {} // no-op |
4968 | 4979 | **************************************/ |
4969 | 4980 | Attachment* attachment = tdbb->getAttachment(); |
4970 | 4981 | |
4971 | AutoCacheRequest request(tdbb, irq_foreign1, IRQ_REQUESTS); | |
4972 | frgn* references = &relation->rel_foreign_refs; | |
4973 | int index_number = 0; | |
4974 | ||
4975 | if (references->frgn_reference_ids) | |
4976 | { | |
4977 | delete references->frgn_reference_ids; | |
4978 | references->frgn_reference_ids = NULL; | |
4979 | } | |
4980 | if (references->frgn_relations) | |
4981 | { | |
4982 | delete references->frgn_relations; | |
4983 | references->frgn_relations = NULL; | |
4984 | } | |
4985 | if (references->frgn_indexes) | |
4986 | { | |
4987 | delete references->frgn_indexes; | |
4988 | references->frgn_indexes = NULL; | |
4989 | } | |
4990 | ||
4991 | FOR(REQUEST_HANDLE request) | |
4992 | IDX IN RDB$INDICES CROSS | |
4982 | while (relation->rel_flags & REL_check_partners) | |
4983 | { | |
4984 | relation->rel_flags &= ~REL_check_partners; | |
4985 | LCK_lock(tdbb, relation->rel_partners_lock, LCK_SR, LCK_WAIT); | |
4986 | ||
4987 | if (relation->rel_flags & REL_check_partners) | |
4988 | continue; | |
4989 | ||
4990 | AutoCacheRequest request(tdbb, irq_foreign1, IRQ_REQUESTS); | |
4991 | frgn* references = &relation->rel_foreign_refs; | |
4992 | int index_number = 0; | |
4993 | ||
4994 | if (references->frgn_reference_ids) | |
4995 | { | |
4996 | delete references->frgn_reference_ids; | |
4997 | references->frgn_reference_ids = NULL; | |
4998 | } | |
4999 | if (references->frgn_relations) | |
5000 | { | |
5001 | delete references->frgn_relations; | |
5002 | references->frgn_relations = NULL; | |
5003 | } | |
5004 | if (references->frgn_indexes) | |
5005 | { | |
5006 | delete references->frgn_indexes; | |
5007 | references->frgn_indexes = NULL; | |
5008 | } | |
5009 | ||
5010 | FOR(REQUEST_HANDLE request) | |
5011 | IDX IN RDB$INDICES CROSS | |
4993 | 5012 | RC IN RDB$RELATION_CONSTRAINTS |
4994 | 5013 | OVER RDB$INDEX_NAME CROSS |
4995 | 5014 | IND IN RDB$INDICES WITH |
4999 | 5018 | IDX.RDB$INDEX_ID > 0 AND |
5000 | 5019 | IND.RDB$INDEX_ID > 0 AND |
5001 | 5020 | IND.RDB$UNIQUE_FLAG = 1 |
5002 | { | |
5003 | //// ASF: Hack fix for CORE-4304, until nasty interactions between dfw and met are not resolved. | |
5004 | const jrd_rel* partner_relation = relation->rel_name == IND.RDB$RELATION_NAME ? | |
5005 | relation : MET_lookup_relation(tdbb, IND.RDB$RELATION_NAME); | |
5006 | ||
5007 | if (partner_relation && !IDX.RDB$INDEX_INACTIVE && !IND.RDB$INDEX_INACTIVE) | |
5008 | { | |
5009 | // This seems a good candidate for vcl. | |
5010 | references->frgn_reference_ids = | |
5011 | vec<int>::newVector(*relation->rel_pool, references->frgn_reference_ids, | |
5012 | index_number + 1); | |
5013 | ||
5014 | (*references->frgn_reference_ids)[index_number] = IDX.RDB$INDEX_ID - 1; | |
5015 | ||
5016 | references->frgn_relations = | |
5017 | vec<int>::newVector(*relation->rel_pool, references->frgn_relations, | |
5018 | index_number + 1); | |
5019 | ||
5020 | (*references->frgn_relations)[index_number] = partner_relation->rel_id; | |
5021 | ||
5022 | references->frgn_indexes = | |
5023 | vec<int>::newVector(*relation->rel_pool, references->frgn_indexes, | |
5024 | index_number + 1); | |
5025 | ||
5026 | (*references->frgn_indexes)[index_number] = IND.RDB$INDEX_ID - 1; | |
5027 | ||
5028 | index_number++; | |
5029 | } | |
5030 | } | |
5031 | END_FOR | |
5032 | ||
5033 | // Prepare for rescan of primary dependencies on relation's primary key and stale vectors. | |
5034 | ||
5035 | request.reset(tdbb, irq_foreign2, IRQ_REQUESTS); | |
5036 | prim* dependencies = &relation->rel_primary_dpnds; | |
5037 | index_number = 0; | |
5038 | ||
5039 | if (dependencies->prim_reference_ids) | |
5040 | { | |
5041 | delete dependencies->prim_reference_ids; | |
5042 | dependencies->prim_reference_ids = NULL; | |
5043 | } | |
5044 | if (dependencies->prim_relations) | |
5045 | { | |
5046 | delete dependencies->prim_relations; | |
5047 | dependencies->prim_relations = NULL; | |
5048 | } | |
5049 | if (dependencies->prim_indexes) | |
5050 | { | |
5051 | delete dependencies->prim_indexes; | |
5052 | dependencies->prim_indexes = NULL; | |
5053 | } | |
5054 | ||
5055 | FOR(REQUEST_HANDLE request) | |
5056 | IDX IN RDB$INDICES CROSS | |
5021 | { | |
5022 | //// ASF: Hack fix for CORE-4304, until nasty interactions between dfw and met are not resolved. | |
5023 | const jrd_rel* partner_relation = relation->rel_name == IND.RDB$RELATION_NAME ? | |
5024 | relation : MET_lookup_relation(tdbb, IND.RDB$RELATION_NAME); | |
5025 | ||
5026 | if (partner_relation && !IDX.RDB$INDEX_INACTIVE && !IND.RDB$INDEX_INACTIVE) | |
5027 | { | |
5028 | // This seems a good candidate for vcl. | |
5029 | references->frgn_reference_ids = | |
5030 | vec<int>::newVector(*relation->rel_pool, references->frgn_reference_ids, | |
5031 | index_number + 1); | |
5032 | ||
5033 | (*references->frgn_reference_ids)[index_number] = IDX.RDB$INDEX_ID - 1; | |
5034 | ||
5035 | references->frgn_relations = | |
5036 | vec<int>::newVector(*relation->rel_pool, references->frgn_relations, | |
5037 | index_number + 1); | |
5038 | ||
5039 | (*references->frgn_relations)[index_number] = partner_relation->rel_id; | |
5040 | ||
5041 | references->frgn_indexes = | |
5042 | vec<int>::newVector(*relation->rel_pool, references->frgn_indexes, | |
5043 | index_number + 1); | |
5044 | ||
5045 | (*references->frgn_indexes)[index_number] = IND.RDB$INDEX_ID - 1; | |
5046 | ||
5047 | index_number++; | |
5048 | } | |
5049 | } | |
5050 | END_FOR | |
5051 | ||
5052 | // Prepare for rescan of primary dependencies on relation's primary key and stale vectors. | |
5053 | ||
5054 | request.reset(tdbb, irq_foreign2, IRQ_REQUESTS); | |
5055 | prim* dependencies = &relation->rel_primary_dpnds; | |
5056 | index_number = 0; | |
5057 | ||
5058 | if (dependencies->prim_reference_ids) | |
5059 | { | |
5060 | delete dependencies->prim_reference_ids; | |
5061 | dependencies->prim_reference_ids = NULL; | |
5062 | } | |
5063 | if (dependencies->prim_relations) | |
5064 | { | |
5065 | delete dependencies->prim_relations; | |
5066 | dependencies->prim_relations = NULL; | |
5067 | } | |
5068 | if (dependencies->prim_indexes) | |
5069 | { | |
5070 | delete dependencies->prim_indexes; | |
5071 | dependencies->prim_indexes = NULL; | |
5072 | } | |
5073 | ||
5074 | FOR(REQUEST_HANDLE request) | |
5075 | IDX IN RDB$INDICES CROSS | |
5057 | 5076 | IND IN RDB$INDICES WITH |
5058 | 5077 | IDX.RDB$UNIQUE_FLAG = 1 AND |
5059 | 5078 | IDX.RDB$INDEX_ID > 0 AND |
5060 | 5079 | IND.RDB$INDEX_ID > 0 AND |
5061 | 5080 | IDX.RDB$RELATION_NAME EQ relation->rel_name.c_str() AND |
5062 | 5081 | IND.RDB$FOREIGN_KEY EQ IDX.RDB$INDEX_NAME |
5063 | { | |
5064 | //// ASF: Hack fix for CORE-4304, until nasty interactions between dfw and met are not resolved. | |
5065 | const jrd_rel* partner_relation = relation->rel_name == IND.RDB$RELATION_NAME ? | |
5066 | relation : MET_lookup_relation(tdbb, IND.RDB$RELATION_NAME); | |
5067 | ||
5068 | if (partner_relation && !IDX.RDB$INDEX_INACTIVE && !IND.RDB$INDEX_INACTIVE) | |
5069 | { | |
5070 | dependencies->prim_reference_ids = | |
5071 | vec<int>::newVector(*relation->rel_pool, dependencies->prim_reference_ids, | |
5072 | index_number + 1); | |
5073 | ||
5074 | (*dependencies->prim_reference_ids)[index_number] = IDX.RDB$INDEX_ID - 1; | |
5075 | ||
5076 | dependencies->prim_relations = | |
5077 | vec<int>::newVector(*relation->rel_pool, dependencies->prim_relations, | |
5078 | index_number + 1); | |
5079 | ||
5080 | (*dependencies->prim_relations)[index_number] = partner_relation->rel_id; | |
5081 | ||
5082 | dependencies->prim_indexes = | |
5083 | vec<int>::newVector(*relation->rel_pool, dependencies->prim_indexes, | |
5084 | index_number + 1); | |
5085 | ||
5086 | (*dependencies->prim_indexes)[index_number] = IND.RDB$INDEX_ID - 1; | |
5087 | ||
5088 | index_number++; | |
5089 | } | |
5090 | } | |
5091 | END_FOR | |
5092 | ||
5093 | LCK_lock(tdbb, relation->rel_partners_lock, LCK_SR, LCK_WAIT); | |
5094 | relation->rel_flags &= ~REL_check_partners; | |
5082 | { | |
5083 | //// ASF: Hack fix for CORE-4304, until nasty interactions between dfw and met are not resolved. | |
5084 | const jrd_rel* partner_relation = relation->rel_name == IND.RDB$RELATION_NAME ? | |
5085 | relation : MET_lookup_relation(tdbb, IND.RDB$RELATION_NAME); | |
5086 | ||
5087 | if (partner_relation && !IDX.RDB$INDEX_INACTIVE && !IND.RDB$INDEX_INACTIVE) | |
5088 | { | |
5089 | dependencies->prim_reference_ids = | |
5090 | vec<int>::newVector(*relation->rel_pool, dependencies->prim_reference_ids, | |
5091 | index_number + 1); | |
5092 | ||
5093 | (*dependencies->prim_reference_ids)[index_number] = IDX.RDB$INDEX_ID - 1; | |
5094 | ||
5095 | dependencies->prim_relations = | |
5096 | vec<int>::newVector(*relation->rel_pool, dependencies->prim_relations, | |
5097 | index_number + 1); | |
5098 | ||
5099 | (*dependencies->prim_relations)[index_number] = partner_relation->rel_id; | |
5100 | ||
5101 | dependencies->prim_indexes = | |
5102 | vec<int>::newVector(*relation->rel_pool, dependencies->prim_indexes, | |
5103 | index_number + 1); | |
5104 | ||
5105 | (*dependencies->prim_indexes)[index_number] = IND.RDB$INDEX_ID - 1; | |
5106 | ||
5107 | index_number++; | |
5108 | } | |
5109 | } | |
5110 | END_FOR | |
5111 | } | |
5095 | 5112 | } |
5096 | 5113 | |
5097 | 5114 |
468 | 468 | * |
469 | 469 | **************************************/ |
470 | 470 | Database* const dbb = tdbb->getDatabase(); |
471 | StableAttachmentPart* const sAtt = tdbb->getAttachment()->getStable(); | |
472 | 471 | |
473 | 472 | shutdown_data data; |
474 | 473 | data.data_items.flag = flag; |
478 | 477 | |
479 | 478 | { // scope |
480 | 479 | // Checkout before calling AST function |
481 | MutexUnlockGuard uguard(*(sAtt->getMutex()), FB_FUNCTION); | |
480 | EngineCheckout uguard(tdbb, FB_FUNCTION); | |
482 | 481 | |
483 | 482 | // Notify local attachments |
484 | 483 | SHUT_blocking_ast(tdbb, true); |
136 | 136 | typedef Array<Service*> AllServices; |
137 | 137 | GlobalPtr<AllServices> allServices; // protected by globalServicesMutex |
138 | 138 | volatile bool svcShutdown = false; |
139 | ||
140 | 139 | GlobalPtr<ThreadCollect> threadCollect; |
141 | 140 | |
142 | 141 | void spbVersionError() |
3639 | 3639 | } |
3640 | 3640 | catch (const Firebird::Exception&) |
3641 | 3641 | { |
3642 | LCK_release(tdbb, lock); | |
3643 | trans->tra_lock = NULL; | |
3642 | 3644 | trans->unlinkFromAttachment(); |
3643 | 3645 | throw; |
3644 | 3646 | } |
258 | 258 | try |
259 | 259 | { |
260 | 260 | EngineCheckout guard(attachment, FB_FUNCTION); |
261 | ||
262 | AutoRestore2<JAttachment*, Attachment> autoInterface(attachment, &Attachment::getInterface, &Attachment::setInterface); | |
263 | JAttachment tempAtt(attachment->getStable()); | |
264 | if (!attachment->getInterface()) | |
265 | { | |
266 | tempAtt.addRef(); | |
267 | autoInterface.set(&tempAtt); | |
268 | } | |
269 | ||
261 | 270 | mapUser(s_user, t_role, NULL, NULL, session.ses_auth, |
262 | 271 | attachment->att_filename.c_str(), dbb->dbb_filename.c_str(), |
263 | dbb->dbb_config->getSecurityDatabase(), | |
264 | dbb->dbb_callback, attachment->getInterface(), | |
265 | false); | |
272 | dbb->dbb_config->getSecurityDatabase(), dbb->dbb_callback, | |
273 | attachment->getInterface(), false); | |
274 | ||
275 | #ifdef DEV_BUILD | |
276 | // Very dirty solution but there is no need frontporting it and | |
277 | // for old version that should be acceptable in order to avoid assertion | |
278 | // instead of backporting a lot of code | |
279 | memset(&tempAtt, 0, sizeof(JAttachment)); | |
280 | #endif | |
266 | 281 | } |
267 | 282 | catch (const Firebird::Exception&) |
268 | 283 | { |
1060 | 1060 | err.printf("Database: %s\n\tValidation aborted", fileName.c_str()); |
1061 | 1061 | iscLogStatus(err.c_str(), tdbb->tdbb_status_vector); |
1062 | 1062 | |
1063 | CCH_unwind(tdbb, false); | |
1064 | ||
1063 | 1065 | cleanup(); |
1064 | 1066 | dbb->deletePool(val_pool); |
1065 | 1067 | return false; |
3093 | 3095 | } |
3094 | 3096 | |
3095 | 3097 | } // try |
3096 | catch (const Firebird::Exception&) | |
3097 | { | |
3098 | if (!(vdr_flags & VDR_online)) | |
3099 | { | |
3100 | const char* msg = relation->rel_name.length() > 0 ? | |
3101 | "bugcheck during scan of table %d (%s)" : | |
3102 | "bugcheck during scan of table %d"; | |
3103 | gds__log(msg, relation->rel_id, relation->rel_name.c_str()); | |
3104 | } | |
3098 | catch (const Firebird::Exception& ex) | |
3099 | { | |
3105 | 3100 | #ifdef DEBUG_VAL_VERBOSE |
3106 | 3101 | if (VAL_debug_level) |
3107 | 3102 | { |
3108 | char s[256]; | |
3103 | char s[BUFFER_SMALL]; | |
3109 | 3104 | SNPRINTF(s, sizeof(s), msg, relation->rel_id, relation->rel_name.c_str()); |
3110 | 3105 | fprintf(stdout, "LOG:\t%s\n", s); |
3111 | 3106 | } |
3112 | 3107 | #endif |
3113 | throw; | |
3108 | string msg; | |
3109 | if (relation->rel_name.hasData()) | |
3110 | { | |
3111 | msg.printf("Error during scan of table %d (%s)", | |
3112 | relation->rel_id, relation->rel_name.c_str()); | |
3113 | } | |
3114 | else | |
3115 | { | |
3116 | msg.printf("Error during scan of table %d", relation->rel_id); | |
3117 | } | |
3118 | ||
3119 | FbLocalStatus tempStatus; | |
3120 | ex.stuffException(&tempStatus); | |
3121 | ||
3122 | Arg::StatusVector tempVector(&tempStatus); | |
3123 | tempVector.prepend(Arg::Gds(isc_random) << Arg::Str(msg)); | |
3124 | tempVector.raise(); | |
3114 | 3125 | } |
3115 | 3126 | |
3116 | 3127 | return rtn_ok; |
7 | 7 | BuildType=V |
8 | 8 | MajorVer=3 |
9 | 9 | MinorVer=0 |
10 | RevNo=10 | |
11 | BuildNum=33601 | |
10 | RevNo=11 | |
11 | BuildNum=33637 | |
12 | 12 | |
13 | 13 | NowAt=`pwd` |
14 | 14 | cd `dirname $0` |
770 | 770 | ('sysf_fp_overflow', 'evlStdMath', 'SysFunction.cpp', NULL, 0, 661, NULL, 'Floating point overflow in built-in function @1', NULL, NULL); |
771 | 771 | ('udf_fp_overflow', 'FUN_evaluate', 'fun.epp', NULL, 0, 662, NULL, 'Floating point overflow in result from UDF @1', NULL, NULL); |
772 | 772 | ('udf_fp_nan', 'FUN_evaluate', 'fun.epp', NULL, 0, 663, NULL, 'Invalid floating point value returned by UDF @1', NULL, NULL); |
773 | ('instance_conflict', 'ISC_map_file', 'isc_sync.cpp', NULL, 0, 664, NULL, 'Database is probably already opened by another engine instance in another Windows session', NULL, NULL); | |
773 | ('instance_conflict', 'ISC_map_file', 'isc_sync.cpp', NULL, 0, 664, NULL, 'Shared memory area is probably already created by another engine instance in another Windows session', NULL, NULL); | |
774 | 774 | ('out_of_temp_space', 'setupFile', 'TempSpace.cpp', NULL, 0, 665, NULL, 'No free space found in temporary directories', NULL, NULL); |
775 | 775 | ('eds_expl_tran_ctrl', NULL, '', NULL, 0, 666, NULL, 'Explicit transaction control is not allowed', NULL, NULL) |
776 | 776 | ('no_trusted_spb', NULL, 'svc.cpp', NULL, 0, 667, NULL, 'Use of TRUSTED switches in spb_command_line is prohibited', NULL, NULL) |
85 | 85 | #include "../remote/os/win32/xnet_proto.h" |
86 | 86 | #endif |
87 | 87 | |
88 | #ifdef WIN_NT | |
89 | #define sleep(seconds) Sleep ((seconds) * 1000) | |
90 | #endif // WIN_NT | |
91 | ||
92 | 88 | |
93 | 89 | const char* const PROTOCOL_INET = "inet"; |
94 | 90 | const char* const PROTOCOL_INET4 = "inet4"; |
150 | 146 | cstring oldValue; |
151 | 147 | }; |
152 | 148 | |
153 | GlobalPtr<PortsCleanup> outPorts; | |
149 | class ClientPortsCleanup : public PortsCleanup | |
150 | { | |
151 | public: | |
152 | ClientPortsCleanup() : | |
153 | PortsCleanup() | |
154 | {} | |
155 | ||
156 | explicit ClientPortsCleanup(MemoryPool& p) : | |
157 | PortsCleanup(p) | |
158 | {} | |
159 | ||
160 | void closePort(rem_port* port); | |
161 | ||
162 | void delay() | |
163 | { | |
164 | Thread::sleep(50); | |
165 | } | |
166 | }; | |
167 | ||
168 | GlobalPtr<ClientPortsCleanup> outPorts; | |
154 | 169 | } |
155 | 170 | |
156 | 171 | namespace Remote { |
730 | 745 | static void batch_dsql_fetch(rem_port*, struct rmtque *, USHORT); |
731 | 746 | static void clear_queue(rem_port*); |
732 | 747 | static void clear_stmt_que(rem_port*, Rsr*); |
748 | static void finalize(rem_port* port); | |
733 | 749 | static void disconnect(rem_port*, bool rmRef = true); |
734 | 750 | static void enqueue_receive(rem_port*, t_rmtque_fn, Rdb*, void*, Rrq::rrq_repeat*); |
735 | 751 | static void dequeue_receive(rem_port*); |
1631 | 1647 | |
1632 | 1648 | try |
1633 | 1649 | { |
1634 | if (!(port->port_flags & PORT_rdb_shutdown)) | |
1650 | if (!(port->port_flags & (PORT_rdb_shutdown | PORT_detached))) | |
1635 | 1651 | { |
1636 | 1652 | release_object(status, rdb, op_detach, rdb->rdb_id); |
1637 | 1653 | } |
4724 | 4740 | rem_port* port = rdb->rdb_port; |
4725 | 4741 | RemotePortGuard portGuard(port, FB_FUNCTION); |
4726 | 4742 | |
4727 | try | |
4728 | { | |
4729 | release_object(status, rdb, op_service_detach, rdb->rdb_id); | |
4730 | } | |
4731 | catch (const Exception&) | |
4732 | { | |
4733 | if (!force) | |
4734 | throw; | |
4743 | if (!(port->port_flags & PORT_detached)) | |
4744 | { | |
4745 | try | |
4746 | { | |
4747 | release_object(status, rdb, op_service_detach, rdb->rdb_id); | |
4748 | } | |
4749 | catch (const Exception&) | |
4750 | { | |
4751 | if (!force) | |
4752 | throw; | |
4753 | } | |
4735 | 4754 | } |
4736 | 4755 | disconnect(port); |
4737 | 4756 | rdb = NULL; |
5915 | 5934 | } |
5916 | 5935 | |
5917 | 5936 | |
5918 | static void disconnect(rem_port* port, bool rmRef) | |
5937 | static void finalize(rem_port* port) | |
5919 | 5938 | { |
5920 | 5939 | /************************************** |
5921 | 5940 | * |
5924 | 5943 | ************************************** |
5925 | 5944 | * |
5926 | 5945 | * Functional description |
5927 | * Disconnect a port and free its memory. | |
5928 | * | |
5929 | **************************************/ | |
5946 | * Disconnect remote port. | |
5947 | * | |
5948 | **************************************/ | |
5949 | ||
5950 | // no need to do something if port already detached | |
5951 | if (port->port_flags & PORT_detached) | |
5952 | return; | |
5953 | ||
5954 | // Avoid async send during finalize | |
5955 | RefMutexGuard guard(*port->port_write_sync, FB_FUNCTION); | |
5930 | 5956 | |
5931 | 5957 | // Send a disconnect to the server so that it |
5932 | 5958 | // gracefully terminates. |
5963 | 5989 | port->send(packet); |
5964 | 5990 | } |
5965 | 5991 | REMOTE_free_packet(port, packet); |
5992 | delete rdb; | |
5993 | port->port_context = NULL; | |
5966 | 5994 | } |
5967 | 5995 | |
5968 | 5996 | // Cleanup the queue |
5969 | 5997 | |
5970 | 5998 | delete port->port_deferred_packets; |
5999 | port->port_deferred_packets = NULL; | |
6000 | ||
6001 | port->port_flags |= PORT_detached; | |
6002 | } | |
6003 | ||
6004 | static void disconnect(rem_port* port, bool rmRef) | |
6005 | { | |
6006 | /************************************** | |
6007 | * | |
6008 | * d i s c o n n e c t | |
6009 | * | |
6010 | ************************************** | |
6011 | * | |
6012 | * Functional description | |
6013 | * Disconnect a port and free its memory. | |
6014 | * | |
6015 | **************************************/ | |
6016 | ||
6017 | finalize(port); | |
5971 | 6018 | |
5972 | 6019 | // Clear context reference for the associated event handler |
5973 | 6020 | // to avoid SEGV during shutdown |
5983 | 6030 | |
5984 | 6031 | port->port_flags |= PORT_disconnect; |
5985 | 6032 | port->disconnect(); |
5986 | delete rdb; | |
5987 | port->port_context = NULL; | |
5988 | 6033 | |
5989 | 6034 | // Remove from active ports |
5990 | 6035 | |
7198 | 7243 | |
7199 | 7244 | RefMutexGuard guard(*port->port_write_sync, FB_FUNCTION); |
7200 | 7245 | |
7246 | if (port->port_flags & PORT_detached || port->port_state == rem_port::BROKEN) | |
7247 | { | |
7248 | (Arg::Gds(isc_net_write_err) | |
7249 | #ifdef DEV_BUILD | |
7250 | << Arg::Gds(isc_random) << "port detached" | |
7251 | #endif | |
7252 | ).raise(); | |
7253 | } | |
7254 | ||
7201 | 7255 | // Send packets that were deferred |
7202 | 7256 | |
7203 | 7257 | if (port->port_deferred_packets) |
7247 | 7301 | |
7248 | 7302 | RefMutexGuard guard(*port->port_write_sync, FB_FUNCTION); |
7249 | 7303 | |
7304 | if (port->port_flags & PORT_detached || port->port_state == rem_port::BROKEN) | |
7305 | { | |
7306 | (Arg::Gds(isc_net_write_err) | |
7307 | #ifdef DEV_BUILD | |
7308 | << Arg::Gds(isc_random) << "port detached" | |
7309 | #endif | |
7310 | ).raise(); | |
7311 | } | |
7312 | ||
7250 | 7313 | // Send packets that were deferred |
7251 | 7314 | |
7252 | 7315 | for (rem_que_packet* p = port->port_deferred_packets->begin(); |
7456 | 7519 | } |
7457 | 7520 | |
7458 | 7521 | } //namespace Remote |
7522 | ||
7523 | ||
7524 | void ClientPortsCleanup::closePort(rem_port* port) | |
7525 | { | |
7526 | RefMutexEnsureUnlock guard(*port->port_sync, FB_FUNCTION); | |
7527 | ||
7528 | if (port->port_flags & PORT_disconnect) | |
7529 | return; | |
7530 | ||
7531 | if (guard.tryEnter()) | |
7532 | Remote::finalize(port); | |
7533 | else | |
7534 | PortsCleanup::closePort(port); | |
7535 | } | |
7459 | 7536 | |
7460 | 7537 | |
7461 | 7538 | RmtAuthBlock::RmtAuthBlock(const Firebird::AuthReader::AuthBlock& aBlock) |
1860 | 1860 | if (port->port_state != rem_port::PENDING) |
1861 | 1861 | return; |
1862 | 1862 | |
1863 | RefMutexGuard guard(*port->port_write_sync, FB_FUNCTION); | |
1864 | ||
1863 | 1865 | port->port_state = rem_port::BROKEN; |
1864 | ||
1865 | 1866 | if (port->port_handle != INVALID_SOCKET) |
1866 | 1867 | { |
1867 | 1868 | shutdown(port->port_handle, 2); |
762 | 762 | void PortsCleanup::registerPort(rem_port* port) |
763 | 763 | { |
764 | 764 | Firebird::MutexLockGuard guard(m_mutex, FB_FUNCTION); |
765 | ||
766 | if (closing) | |
767 | return; | |
768 | ||
765 | 769 | if (!m_ports) |
766 | 770 | { |
767 | 771 | Firebird::MemoryPool& pool = *getDefaultMemoryPool(); |
774 | 778 | void PortsCleanup::unRegisterPort(rem_port* port) |
775 | 779 | { |
776 | 780 | Firebird::MutexLockGuard guard(m_mutex, FB_FUNCTION); |
781 | ||
782 | if (closing) | |
783 | return; | |
777 | 784 | |
778 | 785 | if (m_ports) |
779 | 786 | { |
787 | 794 | |
788 | 795 | void PortsCleanup::closePorts() |
789 | 796 | { |
797 | if (m_ports) | |
798 | delay(); | |
799 | ||
790 | 800 | Firebird::MutexLockGuard guard(m_mutex, FB_FUNCTION); |
801 | Firebird::AutoSetRestore<bool> cl(&closing, true); | |
802 | ||
803 | { // scope | |
804 | Firebird::MutexUnlockGuard g2(m_mutex, FB_FUNCTION); | |
805 | Thread::yield(); | |
806 | } | |
791 | 807 | |
792 | 808 | if (m_ports) |
793 | 809 | { |
794 | 810 | rem_port* const* ptr = m_ports->begin(); |
795 | 811 | const rem_port* const* end = m_ports->end(); |
796 | 812 | for (; ptr < end; ptr++) { |
797 | (*ptr)->force_close(); | |
813 | closePort(*ptr); | |
798 | 814 | } |
799 | 815 | |
800 | 816 | delete m_ports; |
801 | 817 | m_ports = NULL; |
802 | 818 | } |
819 | } | |
820 | ||
821 | void PortsCleanup::closePort(rem_port* port) | |
822 | { | |
823 | port->force_close(); | |
824 | } | |
825 | ||
826 | void PortsCleanup::delay() | |
827 | { | |
803 | 828 | } |
804 | 829 | |
805 | 830 | ServerAuthBase::~ServerAuthBase() |
1350 | 1350 | public: |
1351 | 1351 | PortsCleanup() : |
1352 | 1352 | m_ports(NULL), |
1353 | m_mutex() | |
1353 | m_mutex(), | |
1354 | closing(false) | |
1354 | 1355 | {} |
1355 | 1356 | |
1356 | 1357 | explicit PortsCleanup(MemoryPool&) : |
1357 | 1358 | m_ports(NULL), |
1358 | m_mutex() | |
1359 | m_mutex(), | |
1360 | closing(false) | |
1359 | 1361 | {} |
1360 | 1362 | |
1361 | ~PortsCleanup() | |
1363 | virtual ~PortsCleanup() | |
1362 | 1364 | {} |
1363 | 1365 | |
1364 | 1366 | void registerPort(rem_port*); |
1365 | 1367 | void unRegisterPort(rem_port*); |
1366 | 1368 | |
1367 | 1369 | void closePorts(); |
1370 | virtual void closePort(rem_port*); | |
1371 | virtual void delay(); | |
1368 | 1372 | |
1369 | 1373 | private: |
1370 | 1374 | typedef Firebird::SortedArray<rem_port*> PortsArray; |
1371 | 1375 | PortsArray* m_ports; |
1372 | 1376 | Firebird::Mutex m_mutex; |
1377 | bool closing; | |
1373 | 1378 | }; |
1374 | 1379 | |
1375 | 1380 | #endif // REMOTE_REMOTE_H |
1952 | 1952 | HANDSHAKE_DEBUG(fprintf(stderr, "Srv: accept_connection: calls createPluginsItr\n")); |
1953 | 1953 | port->port_srv_auth_block->createPluginsItr(); |
1954 | 1954 | |
1955 | if (port->port_srv_auth_block->plugins) // We have all required data and iterator was created | |
1955 | AuthServerPlugins* const plugins = port->port_srv_auth_block->plugins; | |
1956 | if (plugins && plugins->hasData()) // We have all required data and iterator was created | |
1956 | 1957 | { |
1957 | AuthServerPlugins* const plugins = port->port_srv_auth_block->plugins; | |
1958 | 1958 | NoCaseString clientPluginName(port->port_srv_auth_block->getPluginName()); |
1959 | 1959 | // If there is plugin matching client's one it will be |
1960 | 1960 | HANDSHAKE_DEBUG(fprintf(stderr, "Srv: accept_connection: client plugin='%s' server='%s'\n", |
2664 | 2664 | |
2665 | 2665 | if (!(local_status.getState() & Firebird::IStatus::STATE_ERRORS)) |
2666 | 2666 | { |
2667 | for (const UCHAR* info = buffer; (*info != isc_info_end) && !done;) | |
2668 | { | |
2669 | const USHORT l = (USHORT) gds__vax_integer(info + 1, 2); | |
2670 | const USHORT type = (USHORT) gds__vax_integer(info + 3, l); | |
2671 | switch (*info) | |
2667 | for (ClumpletReader p(ClumpletReader::InfoResponse, buffer, sizeof(buffer)); !p.isEof(); p.moveNext()) | |
2668 | { | |
2669 | const USHORT type = (USHORT) p.getInt(); | |
2670 | ||
2671 | switch (p.getClumpTag()) | |
2672 | 2672 | { |
2673 | 2673 | case isc_info_sql_stmt_type: |
2674 | 2674 | switch (type) |
2683 | 2683 | break; |
2684 | 2684 | } |
2685 | 2685 | break; |
2686 | ||
2686 | 2687 | case isc_info_sql_batch_fetch: |
2687 | 2688 | if (type == 0) |
2688 | 2689 | ret |= STMT_NO_BATCH; |
2689 | 2690 | break; |
2690 | case isc_info_error: | |
2691 | case isc_info_truncated: | |
2692 | done = true; | |
2693 | break; | |
2694 | ||
2695 | 2691 | } |
2696 | info += 3 + l; | |
2697 | 2692 | } |
2698 | 2693 | } |
2699 | 2694 |
0 | //Microsoft Developer Studio generated resource script. | |
1 | // | |
2 | #include "resource.h" | |
3 | ||
4 | #define APSTUDIO_READONLY_SYMBOLS | |
5 | ///////////////////////////////////////////////////////////////////////////// | |
6 | // | |
7 | // Generated from the TEXTINCLUDE 2 resource. | |
8 | // | |
9 | #include "afxres.h" | |
10 | #include "../../jrd/build_no.h" | |
11 | ||
12 | ///////////////////////////////////////////////////////////////////////////// | |
13 | #undef APSTUDIO_READONLY_SYMBOLS | |
14 | ||
15 | ///////////////////////////////////////////////////////////////////////////// | |
16 | // English (U.S.) resources | |
17 | ||
18 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) | |
19 | #ifdef _WIN32 | |
20 | LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US | |
21 | #pragma code_page(1252) | |
22 | #endif //_WIN32 | |
23 | ||
24 | #ifndef _MAC | |
25 | ///////////////////////////////////////////////////////////////////////////// | |
26 | // | |
27 | // Version | |
28 | // | |
29 | ||
30 | VS_VERSION_INFO VERSIONINFO | |
31 | FILEVERSION FILE_VER_NUMBER | |
32 | PRODUCTVERSION FILE_VER_NUMBER | |
33 | FILEFLAGSMASK 0x3fL | |
34 | #ifdef _DEBUG | |
35 | FILEFLAGS 0x1L | |
36 | #else | |
37 | FILEFLAGS 0x0L | |
38 | #endif | |
39 | FILEOS 0x4L | |
40 | FILETYPE 0x2L | |
41 | FILESUBTYPE 0x0L | |
42 | BEGIN | |
43 | BLOCK "StringFileInfo" | |
44 | BEGIN | |
45 | BLOCK "040904b0" | |
46 | BEGIN | |
47 | VALUE "Comments", "\0" | |
48 | VALUE "CompanyName", "IBPhoenix\0" | |
49 | VALUE "FileDescription", "Firebird 2 Control Panel Applet - for Firebird 1.5 and beyond.\0" | |
50 | VALUE "FileVersion", FILE_VER_STRING | |
51 | VALUE "InternalName", "FB2Control\0" | |
52 | VALUE "LegalCopyright", "Copyright (C) 2003\0" | |
53 | VALUE "LegalTrademarks", "\0" | |
54 | VALUE "OriginalFilename", "Firebird2Control.DLL\0" | |
55 | VALUE "PrivateBuild", "\0" | |
56 | VALUE "ProductName", "Firebird Control Panel Applet\0" | |
57 | VALUE "ProductVersion", PRODUCT_VER_STRING | |
58 | VALUE "SpecialBuild", FB_BUILD_SUFFIX | |
59 | END | |
60 | END | |
61 | BLOCK "VarFileInfo" | |
62 | BEGIN | |
63 | VALUE "Translation", 0x409, 1200 | |
64 | END | |
65 | END | |
66 | ||
67 | #endif // !_MAC | |
68 | ||
69 | #endif // English (U.S.) resources | |
70 | ///////////////////////////////////////////////////////////////////////////// | |
71 | ||
72 | ||
73 | ///////////////////////////////////////////////////////////////////////////// | |
74 | // English (U.K.) resources | |
75 | ||
76 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) | |
77 | #ifdef _WIN32 | |
78 | LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK | |
79 | #pragma code_page(1252) | |
80 | #endif //_WIN32 | |
81 | ||
82 | #ifdef APSTUDIO_INVOKED | |
83 | ///////////////////////////////////////////////////////////////////////////// | |
84 | // | |
85 | // TEXTINCLUDE | |
86 | // | |
87 | ||
88 | 1 TEXTINCLUDE DISCARDABLE | |
89 | BEGIN | |
90 | "resource.h\0" | |
91 | END | |
92 | ||
93 | 2 TEXTINCLUDE DISCARDABLE | |
94 | BEGIN | |
95 | "#include ""afxres.h""\r\n" | |
96 | "#include ""../../jrd/version.rc""\r\n" | |
97 | "\0" | |
98 | END | |
99 | ||
100 | 3 TEXTINCLUDE DISCARDABLE | |
101 | BEGIN | |
102 | "#define _AFX_NO_SPLITTER_RESOURCES\r\n" | |
103 | "#define _AFX_NO_OLE_RESOURCES\r\n" | |
104 | "#define _AFX_NO_TRACKER_RESOURCES\r\n" | |
105 | "#define _AFX_NO_PROPERTY_RESOURCES\r\n" | |
106 | "\r\n" | |
107 | "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" | |
108 | "#ifdef _WIN32\r\n" | |
109 | "LANGUAGE 9, 1\r\n" | |
110 | "#pragma code_page(1252)\r\n" | |
111 | "#endif //_WIN32\r\n" | |
112 | "#include ""res\\FBControl.rc2"" // non-Microsoft Visual C++ edited resources\r\n" | |
113 | "#include ""afxres.rc"" // Standard components\r\n" | |
114 | "#endif\r\n" | |
115 | "\0" | |
116 | END | |
117 | ||
118 | #endif // APSTUDIO_INVOKED | |
119 | ||
120 | ||
121 | ///////////////////////////////////////////////////////////////////////////// | |
122 | // | |
123 | // Icon | |
124 | // | |
125 | ||
126 | // Icon with lowest ID value placed first to ensure application icon | |
127 | // remains consistent on all systems. | |
128 | IDI_ICON1 ICON DISCARDABLE "res\\server.ico" | |
129 | IDI_ICON4 ICON DISCARDABLE "res\\server_stop.ico" | |
130 | ||
131 | ///////////////////////////////////////////////////////////////////////////// | |
132 | // | |
133 | // Dialog | |
134 | // | |
135 | ||
136 | IDD_FBDIALOG DIALOG DISCARDABLE 0, 0, 188, 175 | |
137 | STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | |
138 | CAPTION "Firebird Server Control" | |
139 | FONT 8, "MS Sans Serif" | |
140 | BEGIN | |
141 | ICON IDI_ICON1,IDC_STATUS_ICON,10,8,20,20 | |
142 | LTEXT "The Firebird Server is",IDC_FIREBIRD_STATUS,35,15,98,18 | |
143 | PUSHBUTTON "&Stop",IDC_BUTTON_STOP,136,12,40,14,WS_GROUP | |
144 | LTEXT "not known.",IDC_FB_VERSION,12,34,162,8,NOT WS_GROUP | |
145 | CONTROL "",IDC_STATIC,"Static",SS_GRAYFRAME | SS_SUNKEN,10,45, | |
146 | 166,1 | |
147 | CONTROL "Use the &Guardian",IDC_USE_GUARDIAN,"Button", | |
148 | BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,16,52,71,10 | |
149 | GROUPBOX "Run ",IDC_RUN_TYPE,10,66,166,36 | |
150 | CONTROL "as a Ser&vice",IDC_SERVICE,"Button",BS_AUTORADIOBUTTON | | |
151 | WS_GROUP | WS_TABSTOP,16,75,55,10 | |
152 | CONTROL "as an a&pplication",IDC_APPLICATION,"Button", | |
153 | BS_AUTORADIOBUTTON | WS_TABSTOP,16,89,69,10 | |
154 | GROUPBOX "Server Architecture",IDC_SERVER_ARCH,10,99,48,13,NOT | |
155 | WS_VISIBLE | |
156 | CONTROL "Classic Server",IDC_CLASSIC_SERVER,"Button", | |
157 | BS_AUTORADIOBUTTON | NOT WS_VISIBLE,43,103,61,10 | |
158 | CONTROL "Super Server",IDC_SUPER_SERVER,"Button", | |
159 | BS_AUTORADIOBUTTON | NOT WS_VISIBLE,124,103,57,10 | |
160 | GROUPBOX "Start ",IDC_STATIC,10,111,166,39 | |
161 | CONTROL "Au&tomatically",IDC_AUTO_START,"Button", | |
162 | BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,122,57,10 | |
163 | CONTROL "&Manually",IDC_MANUAL_START,"Button",BS_AUTORADIOBUTTON | | |
164 | WS_TABSTOP,16,135,44,10 | |
165 | DEFPUSHBUTTON "&OK",IDOK,10,156,50,14,WS_GROUP | |
166 | PUSHBUTTON "&Cancel",IDCANCEL,68,156,50,14 | |
167 | PUSHBUTTON "&Apply",IDAPPLY,126,156,50,14,WS_DISABLED | |
168 | END | |
169 | ||
170 | ||
171 | ///////////////////////////////////////////////////////////////////////////// | |
172 | // | |
173 | // DESIGNINFO | |
174 | // | |
175 | ||
176 | #ifdef APSTUDIO_INVOKED | |
177 | GUIDELINES DESIGNINFO DISCARDABLE | |
178 | BEGIN | |
179 | IDD_FBDIALOG, DIALOG | |
180 | BEGIN | |
181 | LEFTMARGIN, 7 | |
182 | RIGHTMARGIN, 181 | |
183 | TOPMARGIN, 7 | |
184 | BOTTOMMARGIN, 168 | |
185 | HORZGUIDE, 57 | |
186 | END | |
187 | END | |
188 | #endif // APSTUDIO_INVOKED | |
189 | ||
190 | ||
191 | ///////////////////////////////////////////////////////////////////////////// | |
192 | // | |
193 | // String Table | |
194 | // | |
195 | ||
196 | STRINGTABLE DISCARDABLE | |
197 | BEGIN | |
198 | IDS_SERVICE_STOPPED "The Firebird service is not running." | |
199 | IDS_SERVICE_START_PENDING "The Firebird service is starting." | |
200 | IDS_SERVICE_STOP_PENDING "The Firebird service is stopping." | |
201 | IDS_SERVICE_RUNNING "The Firebird service is running." | |
202 | IDS_SERVICE_CONTINUE_PENDING "The Firebird service continue is pending." | |
203 | IDS_SERVICE_PAUSE_PENDING "The Firebird service pause is pending." | |
204 | IDS_SERVICE_PAUSED "The Firebird service is paused." | |
205 | IDS_APPLICATION_RUNNING "Firebird is running as an application." | |
206 | IDS_APPLICATION_STOPPED "Firebird is stopped." | |
207 | END | |
208 | ||
209 | #endif // English (U.K.) resources | |
210 | ///////////////////////////////////////////////////////////////////////////// | |
211 | ||
212 | ||
213 | ||
214 | #ifndef APSTUDIO_INVOKED | |
215 | ///////////////////////////////////////////////////////////////////////////// | |
216 | // | |
217 | // Generated from the TEXTINCLUDE 3 resource. | |
218 | // | |
219 | #define _AFX_NO_SPLITTER_RESOURCES | |
220 | #define _AFX_NO_OLE_RESOURCES | |
221 | #define _AFX_NO_TRACKER_RESOURCES | |
222 | #define _AFX_NO_PROPERTY_RESOURCES | |
223 | ||
224 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) | |
225 | #ifdef _WIN32 | |
226 | LANGUAGE 9, 1 | |
227 | #pragma code_page(1252) | |
228 | #endif //_WIN32 | |
229 | #include "res\FBControl.rc2" // non-Microsoft Visual C++ edited resources | |
230 | #include "afxres.rc" // Standard components | |
231 | #endif | |
232 | ||
233 | ///////////////////////////////////////////////////////////////////////////// | |
234 | #endif // not APSTUDIO_INVOKED | |
235 |
0 | // CtrlPan.cpp | |
1 | // Source for CControlPanel | |
2 | ||
3 | #include "stdafx.h" | |
4 | #include "ctrlpan.h" | |
5 | ||
6 | // static data | |
7 | CControlPanel* CControlPanel::m_pThis = NULL; | |
8 | ||
9 | CControlPanel::CControlPanel() | |
10 | { | |
11 | // Set up the static object pointer | |
12 | m_pThis = this; | |
13 | } | |
14 | ||
15 | CControlPanel::~CControlPanel() | |
16 | { | |
17 | } | |
18 | ||
19 | ////////////////////////////////////////////////////////////////////////////// | |
20 | // Callback function (exported) | |
21 | ||
22 | // static member functions (callbacks) | |
23 | LONG APIENTRY CControlPanel::CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2) | |
24 | { | |
25 | ||
26 | ||
27 | // Get a pointer to the C++ object | |
28 | CControlPanel* pCtrl = m_pThis; | |
29 | ASSERT(pCtrl); | |
30 | ||
31 | switch (uMsg) | |
32 | { | |
33 | case CPL_DBLCLK: | |
34 | return pCtrl->OnDblclk(hwndCPl, lParam1, lParam2); | |
35 | ||
36 | case CPL_EXIT: | |
37 | return pCtrl->OnExit(); | |
38 | ||
39 | case CPL_GETCOUNT: | |
40 | return pCtrl->OnGetCount(); | |
41 | ||
42 | case CPL_INIT: | |
43 | return pCtrl->OnInit(); | |
44 | ||
45 | case CPL_NEWINQUIRE: | |
46 | return pCtrl->OnInquire(lParam1, (NEWCPLINFO*)lParam2); | |
47 | ||
48 | case CPL_INQUIRE: | |
49 | return 0; // not handled | |
50 | ||
51 | case CPL_SELECT: | |
52 | return pCtrl->OnSelect(lParam1, lParam2); | |
53 | ||
54 | case CPL_STOP: | |
55 | return pCtrl->OnStop(lParam1, lParam2); | |
56 | ||
57 | default: | |
58 | break; | |
59 | } | |
60 | ||
61 | return 1; // not processed | |
62 | } | |
63 | ||
64 | ///////////////////////////////////////////////////////////////////////////////////////// | |
65 | // Default command handlers | |
66 | ||
67 | LONG CControlPanel::OnDblclk(HWND /*hwndCPl*/, UINT /*uAppNum*/, LONG /*lData*/) | |
68 | { | |
69 | // Show the dialog | |
70 | return 0; // OK | |
71 | } | |
72 | ||
73 | LONG CControlPanel::OnExit() | |
74 | { | |
75 | return 0; // OK | |
76 | } | |
77 | ||
78 | LONG CControlPanel::OnGetCount() | |
79 | { | |
80 | return 1; // default is support for one dialog box | |
81 | } | |
82 | ||
83 | LONG CControlPanel::OnInit() | |
84 | { | |
85 | return 1; // OK | |
86 | } | |
87 | ||
88 | LONG CControlPanel::OnInquire(UINT /*uAppNum*/, NEWCPLINFO* pInfo) | |
89 | { | |
90 | // Fill in the data | |
91 | pInfo->dwSize = sizeof(NEWCPLINFO); // important | |
92 | pInfo->dwFlags = 0; | |
93 | pInfo->dwHelpContext = 0; | |
94 | pInfo->lData = 0; | |
95 | pInfo->hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(1)); | |
96 | strcpy(pInfo->szName, "Applet"); | |
97 | strcpy(pInfo->szInfo, "Raw Cpl Applet"); | |
98 | strcpy(pInfo->szHelpFile, ""); | |
99 | return 0; // OK (don't send CPL_INQUIRE msg) | |
100 | } | |
101 | ||
102 | LONG CControlPanel::OnSelect(UINT /*uAppNum*/, LONG /*lData*/) | |
103 | { | |
104 | return 1; // not handled | |
105 | } | |
106 | ||
107 | LONG CControlPanel::OnStop(UINT /*uAppNum*/, LONG /*lData*/) | |
108 | { | |
109 | return 1; // not handled | |
110 | } |
0 | // CtrlPan.h | |
1 | ||
2 | #if !defined(UTILITIES_CTRLPAN_H) | |
3 | #define UTILITIES_CTRLPAN_H | |
4 | ||
5 | #include <cpl.h> // control panel definitions | |
6 | ||
7 | class CControlPanel | |
8 | { | |
9 | public: | |
10 | CControlPanel(); | |
11 | virtual ~CControlPanel(); | |
12 | ||
13 | // Event handlers | |
14 | virtual LONG OnDblclk(HWND hwndCPl, UINT uAppNum, LONG lData); | |
15 | virtual LONG OnExit(); | |
16 | virtual LONG OnGetCount(); | |
17 | virtual LONG OnInit(); | |
18 | virtual LONG OnInquire(UINT uAppNum, NEWCPLINFO* pInfo); | |
19 | virtual LONG OnSelect(UINT uAppNum, LONG lData); | |
20 | virtual LONG OnStop(UINT uAppNum, LONG lData); | |
21 | ||
22 | // static member functions (callbacks) | |
23 | static LONG APIENTRY CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2); | |
24 | ||
25 | // static data | |
26 | static CControlPanel* m_pThis; // nasty hack to get object ptr | |
27 | }; | |
28 | ||
29 | #endif // UTILITIES_CTRLPAN_H | |
30 |
0 | ; CLW file contains information for the MFC ClassWizard | |
1 | ||
2 | [General Info] | |
3 | Version=1 | |
4 | ClassCount=2 | |
5 | Class1=CFBControlApp | |
6 | LastClass=CFBDialog | |
7 | NewFileInclude2=#include "FBControl.h" | |
8 | ResourceCount=1 | |
9 | NewFileInclude1=#include "stdafx.h" | |
10 | Class2=CFBDialog | |
11 | LastTemplate=CDialog | |
12 | Resource1=IDD_FBDIALOG | |
13 | ||
14 | [CLS:CFBControlApp] | |
15 | Type=0 | |
16 | HeaderFile=FBControl.h | |
17 | ImplementationFile=FBControl.cpp | |
18 | Filter=N | |
19 | LastObject=CFBControlApp | |
20 | ||
21 | [DLG:] | |
22 | Type=1 | |
23 | ControlCount=11 | |
24 | Control1=IDOK,button,1342242817 | |
25 | Control2=IDCANCEL,button,1342242816 | |
26 | Control3=IDC_STATIC,static,1342308352 | |
27 | Control4=IDC_START,edit,1350631552 | |
28 | Control5=IDC_STATIC,static,1342308352 | |
29 | Control6=IDC_INC,edit,1350631552 | |
30 | Control7=IDC_STATIC,button,1342177287 | |
31 | Control8=IDC_STATIC,button,1342177287 | |
32 | Control9=IDC_STATIC,static,1342308352 | |
33 | Control10=IDC_CURRENT,static,1342308352 | |
34 | Control11=IDC_MSG,static,1342308352 | |
35 | ||
36 | [CLS:CFBDialog] | |
37 | Type=0 | |
38 | HeaderFile=fbdialog.h | |
39 | ImplementationFile=fbdialog.cpp | |
40 | BaseClass=CDialog | |
41 | Filter=D | |
42 | VirtualFilter=dWC | |
43 | LastObject=IDC_SERVER_ARCH | |
44 | ||
45 | [DLG:IDD_FBDIALOG] | |
46 | Type=1 | |
47 | Class=CFBDialog | |
48 | ControlCount=18 | |
49 | Control1=IDC_STATUS_ICON,static,1342177283 | |
50 | Control2=IDC_FIREBIRD_STATUS,static,1342308352 | |
51 | Control3=IDC_BUTTON_STOP,button,1342373888 | |
52 | Control4=IDC_FB_VERSION,static,1342177280 | |
53 | Control5=IDC_STATIC,static,1342181384 | |
54 | Control6=IDC_USE_GUARDIAN,button,1342373891 | |
55 | Control7=IDC_RUN_TYPE,button,1342177287 | |
56 | Control8=IDC_SERVICE,button,1342373897 | |
57 | Control9=IDC_APPLICATION,button,1342242825 | |
58 | Control10=IDC_SERVER_ARCH,button,1073741831 | |
59 | Control11=IDC_CLASSIC_SERVER,button,1073741833 | |
60 | Control12=IDC_SUPER_SERVER,button,1073741833 | |
61 | Control13=IDC_STATIC,button,1342177287 | |
62 | Control14=IDC_AUTO_START,button,1342373897 | |
63 | Control15=IDC_MANUAL_START,button,1342242825 | |
64 | Control16=IDOK,button,1342373889 | |
65 | Control17=IDCANCEL,button,1342242816 | |
66 | Control18=IDAPPLY,button,1476460544 | |
67 |
0 | // FBControl.cpp : Defines the initialization routines for the DLL. | |
1 | // | |
2 | ||
3 | #include "stdafx.h" | |
4 | #include "FBControl.h" | |
5 | ||
6 | #ifdef _DEBUG | |
7 | #define FB_NEW DEBUG_NEW | |
8 | #undef THIS_FILE | |
9 | static char THIS_FILE[] = __FILE__; | |
10 | #endif | |
11 | ||
12 | ||
13 | ///////////////////////////////////////////////////////////////////////////// | |
14 | // CFBControlApp | |
15 | ||
16 | BEGIN_MESSAGE_MAP(CFBControlApp, CWinApp) | |
17 | //{{AFX_MSG_MAP(CFBControlApp) | |
18 | // NOTE - the ClassWizard will add and remove mapping macros here. | |
19 | // DO NOT EDIT what you see in these blocks of generated code! | |
20 | //}}AFX_MSG_MAP | |
21 | END_MESSAGE_MAP() | |
22 | ||
23 | ///////////////////////////////////////////////////////////////////////////// | |
24 | // CFBControlApp construction | |
25 | ||
26 | CFBControlApp::CFBControlApp() | |
27 | { | |
28 | // TODO: add construction code here, | |
29 | // Place all significant initialization in InitInstance | |
30 | } | |
31 | ||
32 | ///////////////////////////////////////////////////////////////////////////// | |
33 | // The one and only CFBControlApp object | |
34 | ||
35 | CFBControlApp theApp; |
0 | ; FBControl.def : Declares the module parameters for the DLL. | |
1 | ||
2 | LIBRARY "Firebird2Control.cpl" | |
3 | ;DESCRIPTION 'Firebird 2 Control Panel Windows Dynamic Link Library' | |
4 | ||
5 | EXPORTS | |
6 | ; Explicit exports can go here | |
7 | CPlApplet |
0 | // FBControl.h : main header file for the FBCONTROL DLL | |
1 | // | |
2 | ||
3 | #if !defined(AFX_FBCONTROL_H__A4777E98_E00D_11D6_9193_0050564001ED__INCLUDED_) | |
4 | #define AFX_FBCONTROL_H__A4777E98_E00D_11D6_9193_0050564001ED__INCLUDED_ | |
5 | ||
6 | #if _MSC_VER > 1000 | |
7 | #pragma once | |
8 | #endif // _MSC_VER > 1000 | |
9 | ||
10 | #ifndef __AFXWIN_H__ | |
11 | #error include 'stdafx.h' before including this file for PCH | |
12 | #endif | |
13 | ||
14 | ||
15 | #include "FBPanel.h" | |
16 | ||
17 | ||
18 | ///////////////////////////////////////////////////////////////////////////// | |
19 | // CFBControlApp | |
20 | // See FBControl.cpp for the implementation of this class | |
21 | // | |
22 | ||
23 | class CFBControlApp : public CWinApp | |
24 | { | |
25 | public: | |
26 | CFBControlApp(); | |
27 | ||
28 | // Overrides | |
29 | // ClassWizard generated virtual function overrides | |
30 | //{{AFX_VIRTUAL(CFBControlApp) | |
31 | //}}AFX_VIRTUAL | |
32 | ||
33 | //{{AFX_MSG(CFBControlApp) | |
34 | // NOTE - the ClassWizard will add and remove member functions here. | |
35 | // DO NOT EDIT what you see in these blocks of generated code ! | |
36 | //}}AFX_MSG | |
37 | DECLARE_MESSAGE_MAP() | |
38 | ||
39 | CFBPanel m_Control; | |
40 | ||
41 | }; | |
42 | ||
43 | ||
44 | ///////////////////////////////////////////////////////////////////////////// | |
45 | ||
46 | //{{AFX_INSERT_LOCATION}} | |
47 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. | |
48 | ||
49 | #endif // !defined(AFX_FBCONTROL_H__A4777E98_E00D_11D6_9193_0050564001ED__INCLUDED_) |
0 | /* | |
1 | * PROGRAM: Firebird 2.0 control panel applet | |
2 | * MODULE: fbdialog.cpp | |
3 | * DESCRIPTION: Main file to provide GUI based server control functions | |
4 | * for Firebird 2.0 Super Server | |
5 | * | |
6 | * The contents of this file are subject to the Initial Developer's | |
7 | * Public License Version 1.0 (the "License"); you may not use this | |
8 | * file except in compliance with the License. You may obtain a copy | |
9 | * of the License here: | |
10 | * | |
11 | * http://www.ibphoenix.com?a=ibphoenix&page=ibp_idpl. | |
12 | * | |
13 | * Software distributed under the License is distributed on an "AS | |
14 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or | |
15 | * implied. See the License for the specific language governing rights | |
16 | * and limitations under the License. | |
17 | * | |
18 | * The Initial Developer of the Original Code is Paul Reeves. | |
19 | * | |
20 | * The Original Code is (C) 2003 Paul Reeves. | |
21 | * | |
22 | * All Rights Reserved. | |
23 | * | |
24 | * Contributor(s): ______________________________________. | |
25 | * | |
26 | * History: | |
27 | * This current version is derived from the Fb 1.0 control panel applet | |
28 | * It was adapted to support management of a dual Super Server and | |
29 | * Classic Server install, allowing easy switching between the two server | |
30 | * types. Unfortunately it became obvious too late in the development | |
31 | * cycle that such support was not feasible without delaying release | |
32 | * further. Consequently the applet has been converted back to manage | |
33 | * Super Server only. The relevant code for Classic has been ifdef'ed out. | |
34 | * | |
35 | * | |
36 | */ | |
37 | ||
38 | ||
39 | #include "stdafx.h" | |
40 | //#include "FBPanel.h" | |
41 | #include "FBDialog.h" | |
42 | ||
43 | //#include "../../common/config/config.h" | |
44 | ||
45 | #ifdef _DEBUG | |
46 | #undef THIS_FILE | |
47 | static char BASED_CODE THIS_FILE[] = __FILE__; | |
48 | #endif | |
49 | ||
50 | ||
51 | ///////////////////////////////////////////////////////////////////////////// | |
52 | // CFBDialog | |
53 | ||
54 | ||
55 | CFBDialog::CFBDialog(CWnd* pParent /*=NULL*/) | |
56 | : CDialog(CFBDialog::IDD, pParent) | |
57 | { | |
58 | //{{AFX_DATA_INIT(CFBDialog) | |
59 | m_FB_Version = _T(""); | |
60 | m_Firebird_Status = _T(""); | |
61 | //}}AFX_DATA_INIT | |
62 | ||
63 | m_uiTimer = 0; | |
64 | hScManager = 0; | |
65 | initialised = false; | |
66 | ||
67 | m_Guardian_Name = ISCGUARD_EXECUTABLE; | |
68 | m_SS_Server_Name = REMOTE_EXECUTABLE; | |
69 | #ifdef MANAGE_CLASSIC | |
70 | m_CS_Server_Name = REMOTE_EXECUTABLE; | |
71 | #endif | |
72 | ||
73 | fb_status.AutoStart = false; | |
74 | fb_status.ServicesAvailable = false; | |
75 | fb_status.ServerStatus = 0; | |
76 | fb_status.UseGuardian = false; | |
77 | fb_status.UseService = false; | |
78 | fb_status.WasRunning = false; | |
79 | #ifdef MANAGE_CLASSIC | |
80 | fb_status.UseClassic = false; | |
81 | #endif | |
82 | fb_status.SystemLogin = true; | |
83 | fb_status.SufficientUserRights = true; | |
84 | fb_status.ServerName = ""; | |
85 | ||
86 | new_settings = fb_status; | |
87 | } | |
88 | ||
89 | ||
90 | void CFBDialog::DoDataExchange(CDataExchange* pDX) | |
91 | { | |
92 | CDialog::DoDataExchange(pDX); | |
93 | //{{AFX_DATA_MAP(CFBDialog) | |
94 | DDX_Control(pDX, IDC_SERVER_ARCH, m_Server_Arch); | |
95 | DDX_Control(pDX, IDAPPLY, m_Apply); | |
96 | DDX_Control(pDX, IDC_USE_GUARDIAN, m_Use_Guardian); | |
97 | DDX_Control(pDX, IDC_MANUAL_START, m_Manual_Start); | |
98 | DDX_Control(pDX, IDC_APPLICATION, m_Run_As_Application); | |
99 | DDX_Control(pDX, IDC_SERVICE, m_Run_As_Service); | |
100 | DDX_Control(pDX, IDC_AUTO_START, m_Auto_Start); | |
101 | DDX_Control(pDX, IDC_RUN_TYPE, m_Run_Type); | |
102 | DDX_Control(pDX, IDC_BUTTON_STOP, m_Button_Stop); | |
103 | DDX_Control(pDX, IDC_STATUS_ICON, m_Icon); | |
104 | DDX_Text(pDX, IDC_FB_VERSION, m_FB_Version); | |
105 | DDV_MaxChars(pDX, m_FB_Version, 128); | |
106 | DDX_Text(pDX, IDC_FIREBIRD_STATUS, m_Firebird_Status); | |
107 | //}}AFX_DATA_MAP | |
108 | } | |
109 | ||
110 | ||
111 | BEGIN_MESSAGE_MAP(CFBDialog, CDialog) | |
112 | //{{AFX_MSG_MAP(CFBDialog) | |
113 | ON_BN_CLICKED(IDC_BUTTON_STOP, OnButtonStop) | |
114 | ON_WM_TIMER() | |
115 | ON_WM_DESTROY() | |
116 | ON_BN_CLICKED(IDC_SERVICE, OnService) | |
117 | ON_BN_CLICKED(IDC_MANUAL_START, OnManualStart) | |
118 | ON_BN_CLICKED(IDC_APPLICATION, OnApplication) | |
119 | ON_BN_CLICKED(IDC_AUTO_START, OnAutoStart) | |
120 | ON_BN_CLICKED(IDC_USE_GUARDIAN, OnUseGuardian) | |
121 | ON_BN_CLICKED(IDAPPLY, OnApply) | |
122 | ON_BN_CLICKED(IDC_CLASSIC_SERVER, OnClassicServer) | |
123 | ON_BN_CLICKED(IDC_SUPER_SERVER, OnSuperServer) | |
124 | //}}AFX_MSG_MAP | |
125 | END_MESSAGE_MAP() | |
126 | ||
127 | ||
128 | ///////////////////////////////////////////////////////////////////////////// | |
129 | // CFBDialog message handlers | |
130 | ||
131 | ||
132 | BOOL CFBDialog::OnInitDialog() | |
133 | // This method is meant to do the minimum, one-time setup stuff | |
134 | // UpdateServerStatus does most of the work, and is called on | |
135 | // a timer, so we don't need to repeat that work here. | |
136 | { | |
137 | CDialog::OnInitDialog(); | |
138 | ||
139 | m_Reset_Display_To_Existing_Values = true; | |
140 | ||
141 | fb_status.ServicesAvailable = ServiceSupportAvailable(); | |
142 | if ( fb_status.ServicesAvailable ) | |
143 | { | |
144 | m_Run_Type.EnableWindow(TRUE); | |
145 | m_Run_As_Service.EnableWindow(TRUE); | |
146 | m_Run_As_Application.EnableWindow(TRUE); | |
147 | } | |
148 | else | |
149 | { | |
150 | m_Run_As_Service.EnableWindow(FALSE); | |
151 | } | |
152 | ||
153 | if (fb_status.ServicesAvailable) | |
154 | { | |
155 | if (!ValidateInstalledServices()) | |
156 | { | |
157 | if (ServerStop()) | |
158 | ServiceRemove(); | |
159 | ValidateInstalledServices(); | |
160 | } | |
161 | } | |
162 | ViewRegistryEntries(); | |
163 | ||
164 | fb_status.SufficientUserRights = UserHasSufficientRights(); | |
165 | ||
166 | m_Auto_Start.EnableWindow( fb_status.SufficientUserRights ); | |
167 | m_Manual_Start.EnableWindow( fb_status.SufficientUserRights ); | |
168 | m_Run_As_Application.EnableWindow( fb_status.SufficientUserRights ); | |
169 | m_Run_As_Service.EnableWindow( fb_status.SufficientUserRights ); | |
170 | m_Use_Guardian.EnableWindow( fb_status.SufficientUserRights ); | |
171 | m_Button_Stop.EnableWindow( fb_status.SufficientUserRights ); | |
172 | ||
173 | m_uiTimer = SetTimer(1, 500, NULL); | |
174 | ||
175 | return TRUE; // return TRUE unless you set the focus to a control | |
176 | } | |
177 | ||
178 | ||
179 | void CFBDialog::UpdateServerStatus() | |
180 | // This is one of the key functions. It is called | |
181 | // from the timer and sets the display. | |
182 | // It is in three sections | |
183 | // a) Evaluate current status of the Firebird install | |
184 | // b) Update internal variables | |
185 | // c) Update display | |
186 | { | |
187 | ||
188 | //These two methods more or less tell us everything | |
189 | //about the current state of the server. | |
190 | ViewRegistryEntries(); | |
191 | fb_status.ServerStatus = GetServerStatus(); | |
192 | ||
193 | ||
194 | #ifdef MANAGE_CLASSIC | |
195 | if (fb_status.WasRunning && !fb_status.UseService) | |
196 | { | |
197 | fb_status.UseClassic = (bool) GetClassicServerHandle(); | |
198 | } | |
199 | else | |
200 | { | |
201 | fb_status.UseClassic = (bool) GetPreferredArchitecture(); | |
202 | } | |
203 | #endif | |
204 | ||
205 | //========Update other internal variables ============== | |
206 | ||
207 | m_Firebird_Status.Format(fb_status.ServerStatus); | |
208 | ||
209 | #ifdef MANAGE_CLASSIC | |
210 | if (fb_status.UseClassic) | |
211 | { | |
212 | fb_status.ServiceExecutable = m_CS_Server_Name; | |
213 | } | |
214 | else | |
215 | #endif | |
216 | { | |
217 | fb_status.ServiceExecutable = m_SS_Server_Name; | |
218 | } | |
219 | ||
220 | //========Start of code that updates GUI================ | |
221 | if ( fb_status.WasRunning ) | |
222 | { | |
223 | m_Icon.SetIcon(AfxGetApp()->LoadIcon(IDI_ICON1)); | |
224 | m_Button_Stop.SetWindowText("&Stop"); | |
225 | } | |
226 | else | |
227 | { | |
228 | m_Icon.SetIcon(AfxGetApp()->LoadIcon(IDI_ICON4)); | |
229 | m_Button_Stop.SetWindowText("&Start"); | |
230 | } | |
231 | ||
232 | //Reset check boxes | |
233 | if (m_Reset_Display_To_Existing_Values) | |
234 | { | |
235 | // This is always called on startup. This method | |
236 | // is also called if an attempt to install | |
237 | // the service fails. | |
238 | ResetCheckBoxes( fb_status ); | |
239 | if ( m_Apply.IsWindowEnabled() ) | |
240 | ApplyChanges(); | |
241 | } | |
242 | ||
243 | m_Reset_Display_To_Existing_Values = false; | |
244 | ||
245 | UpdateData(false); | |
246 | ||
247 | // This will be false the first time round. | |
248 | // It is needed because the Config class doesn't | |
249 | // refresh after the conf file has been updated. | |
250 | initialised = true; | |
251 | ||
252 | // The only time new_settings differs from fb_status is | |
253 | // during the ApplyChanges method. | |
254 | new_settings = fb_status; | |
255 | } | |
256 | ||
257 | ||
258 | bool CFBDialog::CheckServiceInstalled( LPCTSTR service ) | |
259 | { | |
260 | OpenServiceManager( GENERIC_READ ); | |
261 | SC_HANDLE hService = OpenService (hScManager, service, GENERIC_READ ); | |
262 | const bool result = hService != NULL; | |
263 | if (result) | |
264 | CloseServiceHandle( hService ); | |
265 | CloseServiceManager(); | |
266 | return result; | |
267 | } | |
268 | ||
269 | ||
270 | bool CFBDialog::ValidateInstalledServices() | |
271 | // Check if services are installed. | |
272 | // If Guardian installed but not Server service | |
273 | // then return false; | |
274 | { | |
275 | fb_status.UseService = CheckServiceInstalled(GetServiceName(REMOTE_SERVICE)); | |
276 | fb_status.UseGuardian = CheckServiceInstalled(GetServiceName(ISCGUARD_SERVICE)); | |
277 | ||
278 | return (!fb_status.UseService && fb_status.UseGuardian) ? false : true; | |
279 | } | |
280 | ||
281 | CString CFBDialog::GetServiceName(const char* name) const | |
282 | { | |
283 | CString serviceName; | |
284 | serviceName.Format(name, FB_DEFAULT_INSTANCE); | |
285 | return serviceName; | |
286 | } | |
287 | ||
288 | int CFBDialog::GetServerStatus() | |
289 | // This is called by UpdateServerStatus, | |
290 | // which is called on the timer, so our status | |
291 | // should always be 'up-to-date'. | |
292 | // Returns: | |
293 | // fb_status.ServerStatus | |
294 | // Also sets: | |
295 | // fb_status.UseService | |
296 | // fb_status.WasRunning | |
297 | ||
298 | { | |
299 | int result = IDS_APPLICATION_STOPPED; | |
300 | ||
301 | const CString serviceName = GetServiceName(REMOTE_SERVICE); | |
302 | fb_status.UseService = CheckServiceInstalled(serviceName); | |
303 | ||
304 | if ( fb_status.UseService ) | |
305 | { | |
306 | OpenServiceManager( GENERIC_READ ); | |
307 | SC_HANDLE hService = OpenService (hScManager, serviceName, GENERIC_READ ); | |
308 | QueryServiceStatus( hService, &service_status ); | |
309 | CloseServiceHandle ( hService ); | |
310 | CloseServiceManager(); | |
311 | switch ( service_status.dwCurrentState ) | |
312 | { | |
313 | case SERVICE_STOPPED : | |
314 | result = IDS_SERVICE_STOPPED; | |
315 | break; | |
316 | case SERVICE_START_PENDING : | |
317 | result = IDS_SERVICE_START_PENDING; | |
318 | break; | |
319 | case SERVICE_STOP_PENDING : | |
320 | result = IDS_SERVICE_STOP_PENDING; | |
321 | break; | |
322 | case SERVICE_RUNNING : | |
323 | result = IDS_SERVICE_RUNNING; | |
324 | break; | |
325 | case SERVICE_CONTINUE_PENDING : | |
326 | result = IDS_SERVICE_CONTINUE_PENDING; | |
327 | break; | |
328 | case SERVICE_PAUSE_PENDING : | |
329 | result = IDS_SERVICE_PAUSE_PENDING; | |
330 | break; | |
331 | case SERVICE_PAUSED : | |
332 | result = IDS_SERVICE_PAUSED; | |
333 | break; | |
334 | } | |
335 | } | |
336 | else | |
337 | { | |
338 | //Is Firebird running as an application... | |
339 | if ( FirebirdRunning() ) | |
340 | { | |
341 | result = IDS_APPLICATION_RUNNING; | |
342 | } | |
343 | else | |
344 | { | |
345 | result = IDS_APPLICATION_STOPPED; | |
346 | } | |
347 | } | |
348 | ||
349 | fb_status.WasRunning = ((fb_status.ServerStatus == IDS_SERVICE_RUNNING) || | |
350 | (fb_status.ServerStatus == IDS_APPLICATION_RUNNING) ); | |
351 | ||
352 | // If running as an application and not set to run automatically on start up | |
353 | // we still don't know if we the guardian is running. | |
354 | if (fb_status.WasRunning && !fb_status.UseService) | |
355 | { | |
356 | fb_status.UseGuardian = (bool) GetGuardianHandle(); | |
357 | } | |
358 | ||
359 | return result; | |
360 | } | |
361 | ||
362 | ||
363 | void CFBDialog::ViewRegistryEntries() | |
364 | // Find out what we have in the non-Firebird section of the | |
365 | // registry ie, in Services or Application Run | |
366 | // | |
367 | // The following variables will be set on return: | |
368 | // fb_status.UseGuardian | |
369 | // fb_status.AutoStart | |
370 | // fb_status.SystemLogin | |
371 | // fb_status.UseClassic | |
372 | // fb_status.ServerName | |
373 | { | |
374 | ||
375 | fb_status.AutoStart = false; | |
376 | ||
377 | fb_status.UseService = CheckServiceInstalled(GetServiceName(REMOTE_SERVICE)); | |
378 | ||
379 | if ( fb_status.UseService ) | |
380 | { | |
381 | OpenServiceManager( GENERIC_READ ); | |
382 | ||
383 | CString service = GetServiceName(ISCGUARD_SERVICE); | |
384 | CString display_name = GetServiceName(ISCGUARD_DISPLAY_NAME); | |
385 | SC_HANDLE hService = OpenService (hScManager, service, SERVICE_QUERY_CONFIG); | |
386 | fb_status.UseGuardian = hService; | |
387 | if (hService != NULL) // then we are running as a Service | |
388 | { | |
389 | DWORD dwBytesNeeded; | |
390 | LPQUERY_SERVICE_CONFIG status_info = (LPQUERY_SERVICE_CONFIG) LocalAlloc(LPTR, 4096); | |
391 | if (!QueryServiceConfig(hService, status_info, 4096, &dwBytesNeeded)) | |
392 | { | |
393 | LocalFree( status_info ); | |
394 | HandleError(false, "ViewRegistryEntries - Cannot query Guardian service."); | |
395 | } | |
396 | else | |
397 | { | |
398 | if (status_info->dwStartType == SERVICE_AUTO_START ) | |
399 | { | |
400 | fb_status.AutoStart = true; | |
401 | } | |
402 | } | |
403 | CloseServiceHandle (hService); | |
404 | LocalFree( status_info ); | |
405 | ||
406 | } | |
407 | ||
408 | //Now do the same again, but this time only look at the server itself | |
409 | service = GetServiceName(REMOTE_SERVICE); | |
410 | display_name = GetServiceName(REMOTE_DISPLAY_NAME); | |
411 | hService = OpenService (hScManager, service, SERVICE_QUERY_CONFIG); | |
412 | CloseServiceManager(); | |
413 | if (hService != NULL) // then we are running as a Service | |
414 | { | |
415 | DWORD dwBytesNeeded; | |
416 | LPQUERY_SERVICE_CONFIG status_info = (LPQUERY_SERVICE_CONFIG) LocalAlloc(LPTR, 4096); | |
417 | if (!QueryServiceConfig(hService, status_info, 4096, &dwBytesNeeded)) | |
418 | { | |
419 | LocalFree( status_info ); | |
420 | HandleError(false, "ViewRegistryEntries - Cannot query server service."); | |
421 | } | |
422 | else | |
423 | { | |
424 | fb_status.ServerName = status_info->lpBinaryPathName; | |
425 | } | |
426 | ||
427 | CString LoginAccount = status_info->lpServiceStartName; | |
428 | if ( LoginAccount == "LocalSystem" ) | |
429 | { | |
430 | fb_status.SystemLogin = true; | |
431 | } | |
432 | else | |
433 | { | |
434 | fb_status.SystemLogin = false; | |
435 | } | |
436 | LocalFree( status_info ); | |
437 | CloseServiceHandle (hService); | |
438 | } | |
439 | } | |
440 | else //Installed as Application, so look for an entry in registry | |
441 | { | |
442 | HKEY hkey; | |
443 | if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", | |
444 | 0, KEY_QUERY_VALUE, &hkey) == ERROR_SUCCESS) | |
445 | { | |
446 | DWORD dwType; | |
447 | DWORD dwSize = MAX_PATH; | |
448 | fb_status.AutoStart = (RegQueryValueEx(hkey, "Firebird", NULL, &dwType, | |
449 | (LPBYTE) fb_status.ServerName.GetBuffer(dwSize / sizeof(TCHAR)), &dwSize) == | |
450 | ERROR_SUCCESS ); | |
451 | fb_status.ServerName.ReleaseBuffer(-1); | |
452 | if (fb_status.AutoStart) | |
453 | fb_status.UseGuardian = ( fb_status.ServerName.Find("fbguard") == ERROR_SUCCESS ); | |
454 | ||
455 | RegCloseKey (hkey); | |
456 | } | |
457 | } | |
458 | ||
459 | #ifdef MANAGE_CLASSIC | |
460 | //Our look in the registry has probably given us | |
461 | //the filename of the installed server | |
462 | if ( fb_status.ServerName.Find("fb_inet_server") == ERROR_SUCCESS ) | |
463 | { | |
464 | fb_status.UseClassic = true; | |
465 | } | |
466 | if ( fb_status.ServerName.Find("fbserver") == ERROR_SUCCESS ) | |
467 | { | |
468 | fb_status.UseClassic = false; | |
469 | } | |
470 | if ( fb_status.ServerName == "" ) | |
471 | { | |
472 | // Nothing is stored in the registry so we must look to see if | |
473 | // Firebird.conf has a preference | |
474 | fb_status.UseClassic = (bool) GetPreferredArchitecture(); | |
475 | } | |
476 | #endif | |
477 | } | |
478 | ||
479 | ||
480 | void CFBDialog::ApplyChanges() | |
481 | /* | |
482 | * | |
483 | * It all happens here. | |
484 | * | |
485 | * With the addition of support for classic we now need to | |
486 | * evaluate 16 possible states. | |
487 | * | |
488 | */ | |
489 | { | |
490 | // Stop the update timer before doing anything else | |
491 | if (m_uiTimer) KillTimer(m_uiTimer); | |
492 | ||
493 | //find out what has changed and implement the changes | |
494 | try | |
495 | { | |
496 | //Stage 1 | |
497 | // Stop the Server | |
498 | // We don't try to restart unless we were running | |
499 | // and we successfully stopped the server. | |
500 | if ( fb_status.WasRunning ) | |
501 | { | |
502 | if ( ServerStop() ) | |
503 | { | |
504 | #if defined(_DEBUG) | |
505 | // If we are in debug mode it is useful to | |
506 | // reset the display - but UpdateServerStatus | |
507 | // resyncs new_settings with fb_status, so | |
508 | // it must never be called in ApplyChanges() | |
509 | // after this point. | |
510 | UpdateServerStatus(); | |
511 | ProcessMessages(); | |
512 | #endif | |
513 | new_settings.WasRunning = true; | |
514 | } | |
515 | else | |
516 | { | |
517 | //If we can't stop the server we should give up. | |
518 | HandleError(false, "Failed to stop server. New settings will not be applied."); | |
519 | throw; | |
520 | } | |
521 | } | |
522 | ||
523 | ||
524 | //Stage 2 - Gather details of changes to make | |
525 | ||
526 | //Manage change to startup - from/to manual or auto | |
527 | const bool ChangeStartType = | |
528 | ( fb_status.AutoStart && m_Manual_Start.GetCheck() ) || | |
529 | ( !fb_status.AutoStart && m_Auto_Start.GetCheck() ) ; | |
530 | ||
531 | if ( ChangeStartType ) | |
532 | new_settings.AutoStart = !fb_status.AutoStart; | |
533 | else | |
534 | new_settings.AutoStart = fb_status.AutoStart; | |
535 | ||
536 | #ifdef MANAGE_CLASSIC | |
537 | //Do we use Super Server or Classic | |
538 | const bool ChangeServerArchitecture = | |
539 | ( !fb_status.UseClassic && m_Classic_Server.GetCheck() ) || | |
540 | ( fb_status.UseClassic && m_Super_Server.GetCheck() ); | |
541 | if ( ChangeServerArchitecture ) | |
542 | new_settings.UseClassic = !fb_status.UseClassic; | |
543 | else | |
544 | new_settings.UseClassic = fb_status.UseClassic; | |
545 | ||
546 | if (new_settings.UseClassic) | |
547 | { | |
548 | new_settings.ServiceExecutable = m_CS_Server_Name; | |
549 | } | |
550 | else | |
551 | { | |
552 | new_settings.ServiceExecutable = m_SS_Server_Name; | |
553 | } | |
554 | #endif | |
555 | ||
556 | //Do we change Guardian Usage? | |
557 | const bool ChangeGuardianUse = | |
558 | ( !fb_status.UseGuardian && m_Use_Guardian.GetCheck() ) || | |
559 | ( fb_status.UseGuardian && !m_Use_Guardian.GetCheck() ); | |
560 | if ( ChangeGuardianUse ) | |
561 | new_settings.UseGuardian = !fb_status.UseGuardian; | |
562 | else | |
563 | new_settings.UseGuardian = fb_status.UseGuardian; | |
564 | ||
565 | //Finally, test for change between service and application usage. | |
566 | const bool ChangeRunStyle = | |
567 | ( fb_status.UseService && m_Run_As_Application.GetCheck() ) || | |
568 | ( !fb_status.UseService && m_Run_As_Service.GetCheck() ); | |
569 | if (ChangeRunStyle) | |
570 | new_settings.UseService = !fb_status.UseService; | |
571 | else | |
572 | new_settings.UseService = fb_status.UseService; | |
573 | ||
574 | ||
575 | //Stage 3 - implement changes | |
576 | ||
577 | #if !defined(_DEBUG) | |
578 | BeginWaitCursor(); | |
579 | #endif | |
580 | ||
581 | //Three things to do | |
582 | // a) First pull down what is already there | |
583 | if ( ChangeRunStyle || ChangeGuardianUse /* || ChangeServerArchitecture */) | |
584 | { | |
585 | if ( fb_status.UseService ) | |
586 | { | |
587 | ServiceRemove(); | |
588 | } | |
589 | else | |
590 | AppRemove(); | |
591 | } | |
592 | ||
593 | ||
594 | #ifdef FBCPL_UPDATE_CONF | |
595 | // b) update firebird.conf | |
596 | if ( ChangeGuardianUse ) | |
597 | { | |
598 | SetGuardianUseInConf( new_settings.UseGuardian ); | |
599 | } | |
600 | #endif | |
601 | #ifdef MANAGE_CLASSIC | |
602 | if ( ChangeServerArchitecture ) | |
603 | { | |
604 | SetPreferredArchitectureInConf( new_settings.UseClassic ); | |
605 | } | |
606 | #endif | |
607 | ||
608 | // c) install the new configuration | |
609 | if ( ChangeRunStyle || ChangeGuardianUse | |
610 | #ifdef MANAGE_CLASSIC | |
611 | ||
612 | || ChangeServerArchitecture | |
613 | #endif | |
614 | ) | |
615 | { | |
616 | if ( new_settings.UseService ) | |
617 | { | |
618 | ServiceInstall( new_settings ); | |
619 | } | |
620 | else | |
621 | { | |
622 | AppInstall( new_settings ); | |
623 | } | |
624 | } | |
625 | else | |
626 | { | |
627 | // We are not changing the run style and not changing guardian usage | |
628 | // and we are not changing the server architecture so | |
629 | // we only have the autostart setting left to change | |
630 | SetAutoStart( new_settings ); | |
631 | } | |
632 | ||
633 | if ( new_settings.WasRunning ) | |
634 | { | |
635 | ProcessMessages(); | |
636 | ServerStart( new_settings ); | |
637 | } | |
638 | ||
639 | // If we haven't had a failure then we disable the apply button | |
640 | if (!m_Reset_Display_To_Existing_Values) | |
641 | DisableApplyButton(); | |
642 | ||
643 | // Update fb_status if we are running as an application | |
644 | if (!new_settings.UseService && ChangeGuardianUse) | |
645 | fb_status.UseGuardian = !fb_status.UseGuardian; | |
646 | ||
647 | //And finally reset the m_error_status to zero; | |
648 | m_Error_Status = 0; | |
649 | ||
650 | } | |
651 | catch ( ... ) | |
652 | { | |
653 | // Oops, something bad happened. Which | |
654 | // means the apply button is still enabled. | |
655 | // We should probably do a reset here. | |
656 | ||
657 | m_Reset_Display_To_Existing_Values = true; | |
658 | } | |
659 | ||
660 | #if !defined(_DEBUG) | |
661 | EndWaitCursor(); | |
662 | #endif | |
663 | ||
664 | //Whatever the outcome of ApplyChanges we need to refresh the dialog | |
665 | m_uiTimer = SetTimer( 1, 500, NULL ); | |
666 | } | |
667 | ||
668 | ||
669 | void CFBDialog::ResetCheckBoxes(const CFBDialog::STATUS status) | |
670 | { | |
671 | switch (status.ServerStatus) | |
672 | { | |
673 | case IDS_APPLICATION_RUNNING: | |
674 | case IDS_APPLICATION_STOPPED: | |
675 | m_Run_As_Application.SetCheck(1); | |
676 | m_Run_As_Service.SetCheck(0); | |
677 | break; | |
678 | default: | |
679 | m_Run_As_Application.SetCheck(0); | |
680 | m_Run_As_Service.SetCheck(1); | |
681 | } | |
682 | ||
683 | //Now are we starting automatically or not? | |
684 | if (status.AutoStart) | |
685 | { | |
686 | m_Auto_Start.SetCheck(1); | |
687 | m_Manual_Start.SetCheck(0); | |
688 | } | |
689 | else | |
690 | { | |
691 | m_Auto_Start.SetCheck(0); | |
692 | m_Manual_Start.SetCheck(1); | |
693 | } | |
694 | ||
695 | m_Use_Guardian.SetCheck(status.UseGuardian); | |
696 | ||
697 | #ifdef MANAGE_CLASSIC | |
698 | if (status.UseClassic) | |
699 | { | |
700 | m_Classic_Server.SetCheck(1); | |
701 | m_Super_Server.SetCheck(0); | |
702 | } | |
703 | else | |
704 | { | |
705 | m_Classic_Server.SetCheck(0); | |
706 | m_Super_Server.SetCheck(1); | |
707 | } | |
708 | #endif | |
709 | ||
710 | // The server can now be controlled by a specific | |
711 | // username/password. If it is set then for now we | |
712 | // will disable all config options and add | |
713 | // support at a later date. | |
714 | /* m_Classic_Server.EnableWindow( status.SystemLogin ); | |
715 | m_Super_Server.EnableWindow( status.SystemLogin ); | |
716 | */ | |
717 | m_Auto_Start.EnableWindow( status.SystemLogin && fb_status.SufficientUserRights ); | |
718 | m_Manual_Start.EnableWindow( status.SystemLogin && fb_status.SufficientUserRights ); | |
719 | m_Run_As_Application.EnableWindow( status.SystemLogin && fb_status.SufficientUserRights ); | |
720 | m_Run_As_Service.EnableWindow( status.SystemLogin && fb_status.SufficientUserRights ); | |
721 | m_Use_Guardian.EnableWindow( status.SystemLogin && fb_status.SufficientUserRights ); | |
722 | m_Button_Stop.EnableWindow( status.SystemLogin && fb_status.SufficientUserRights ); | |
723 | } | |
724 | ||
725 | ||
726 | int CFBDialog::DatabasesConnected() | |
727 | // Check if any databases are open on the server. | |
728 | //** | |
729 | //** Note: We really need a way of getting number of attachments | |
730 | //** without having to enter a username / password. | |
731 | //** This could be done by reading the LOCK_Header | |
732 | //** | |
733 | { | |
734 | int nDatabases = 0; | |
735 | return nDatabases; | |
736 | } | |
737 | ||
738 | ||
739 | bool CFBDialog::ServerStart(const CFBDialog::STATUS status ) | |
740 | { | |
741 | bool result = false; | |
742 | ||
743 | #if !defined(_DEBUG) | |
744 | BeginWaitCursor(); | |
745 | #endif | |
746 | ||
747 | if ( status.UseService ) | |
748 | { | |
749 | CString service; | |
750 | CString display_name; | |
751 | if (status.UseGuardian) | |
752 | { | |
753 | service = GetServiceName(ISCGUARD_SERVICE); | |
754 | display_name = GetServiceName(ISCGUARD_DISPLAY_NAME); | |
755 | } | |
756 | else | |
757 | { | |
758 | service = GetServiceName(REMOTE_SERVICE); | |
759 | display_name = GetServiceName(REMOTE_DISPLAY_NAME); | |
760 | } | |
761 | ||
762 | OpenServiceManager(GENERIC_READ | GENERIC_EXECUTE | GENERIC_WRITE); | |
763 | if (hScManager) | |
764 | { | |
765 | try | |
766 | { | |
767 | m_Error_Status = SERVICES_start (hScManager, service, /*display_name,*/ 0, svc_error); | |
768 | if (m_Error_Status == FB_SUCCESS) | |
769 | result = true; | |
770 | } | |
771 | catch ( ... ) | |
772 | { | |
773 | } | |
774 | } | |
775 | CloseServiceManager(); | |
776 | } | |
777 | else | |
778 | { | |
779 | try | |
780 | { | |
781 | STARTUPINFO si; | |
782 | SECURITY_ATTRIBUTES sa; | |
783 | PROCESS_INFORMATION pi; | |
784 | ZeroMemory (&si, sizeof(si)); | |
785 | si.cb = sizeof (si); | |
786 | sa.nLength = sizeof (sa); | |
787 | sa.lpSecurityDescriptor = NULL; | |
788 | sa.bInheritHandle = TRUE; | |
789 | ||
790 | char full_name[MAX_PATH + 15] = ""; | |
791 | GetFullAppPath( status, full_name ); | |
792 | ||
793 | if (!CreateProcess (NULL, full_name, &sa, NULL, FALSE, 0, NULL, NULL, &si, &pi)) | |
794 | HandleError(false, "Application Start"); | |
795 | else | |
796 | { | |
797 | result = true; | |
798 | CloseHandle(pi.hProcess); | |
799 | CloseHandle(pi.hThread); | |
800 | } | |
801 | } | |
802 | catch ( ... ) | |
803 | { | |
804 | } | |
805 | } | |
806 | ||
807 | #if !defined(_DEBUG) | |
808 | EndWaitCursor(); | |
809 | #endif | |
810 | ||
811 | return result; | |
812 | } | |
813 | ||
814 | ||
815 | bool CFBDialog::ServerStop() | |
816 | { | |
817 | bool result = false; | |
818 | ||
819 | if (!DatabasesConnected()) | |
820 | { | |
821 | if ( fb_status.UseService ) | |
822 | { | |
823 | try | |
824 | { | |
825 | #if !defined(_DEBUG) | |
826 | BeginWaitCursor(); | |
827 | #endif | |
828 | OpenServiceManager( GENERIC_READ | GENERIC_EXECUTE | GENERIC_WRITE ); | |
829 | ||
830 | CString service; | |
831 | CString display_name; | |
832 | if (fb_status.UseGuardian) | |
833 | { | |
834 | service = GetServiceName(ISCGUARD_SERVICE); | |
835 | display_name = GetServiceName(ISCGUARD_DISPLAY_NAME); | |
836 | } | |
837 | else | |
838 | { | |
839 | service = GetServiceName(REMOTE_SERVICE); | |
840 | display_name = GetServiceName(REMOTE_DISPLAY_NAME); | |
841 | } | |
842 | m_Error_Status = SERVICES_stop(hScManager, service, /*display_name,*/ svc_error); | |
843 | ||
844 | result = !m_Error_Status; | |
845 | ||
846 | } | |
847 | catch (...) | |
848 | { | |
849 | MessageBeep(-1); | |
850 | } | |
851 | ||
852 | CloseServiceManager(); | |
853 | #if !defined(_DEBUG) | |
854 | EndWaitCursor(); | |
855 | #endif | |
856 | } | |
857 | else | |
858 | { | |
859 | try | |
860 | { | |
861 | #if !defined(_DEBUG) | |
862 | BeginWaitCursor(); | |
863 | #endif | |
864 | KillApp(); | |
865 | result = true; | |
866 | } | |
867 | catch (...) | |
868 | { | |
869 | } | |
870 | #if !defined(_DEBUG) | |
871 | EndWaitCursor(); | |
872 | #endif | |
873 | } | |
874 | } | |
875 | ||
876 | return result; | |
877 | } | |
878 | ||
879 | ||
880 | void CFBDialog::KillApp() | |
881 | { | |
882 | // Under Win2K3 and WinXP there seem to be timing issues that don't | |
883 | // exist in earlier platforms. Killing the server will kill the | |
884 | // Guardian, but it won't always do it quickly enough for the CPL | |
885 | // applet, so we try and do that before killing the server. | |
886 | LRESULT result; | |
887 | HWND hTmpWnd = GetGuardianHandle(); | |
888 | if (hTmpWnd != NULL) | |
889 | { | |
890 | result = ::SendMessage(hTmpWnd, WM_CLOSE, 0, 0); | |
891 | ProcessMessages(); | |
892 | hTmpWnd = NULL; | |
893 | } | |
894 | ||
895 | hTmpWnd = GetFirebirdHandle(); | |
896 | if (hTmpWnd != NULL) | |
897 | { | |
898 | result = ::SendMessage(hTmpWnd, WM_CLOSE, 0, 0); | |
899 | ProcessMessages(); | |
900 | hTmpWnd = NULL; | |
901 | } | |
902 | } | |
903 | ||
904 | ||
905 | bool CFBDialog::ServiceInstall(CFBDialog::STATUS status ) | |
906 | { | |
907 | OpenServiceManager( GENERIC_READ | GENERIC_EXECUTE | GENERIC_WRITE ); | |
908 | ||
909 | if (hScManager) | |
910 | { | |
911 | const char* ServerPath = m_Root_Path; | |
912 | ||
913 | const CString guard_service = GetServiceName(ISCGUARD_SERVICE); | |
914 | const CString guard_display_name = GetServiceName(ISCGUARD_DISPLAY_NAME); | |
915 | const CString remote_service = GetServiceName(REMOTE_SERVICE); | |
916 | const CString remote_display_name = GetServiceName(REMOTE_DISPLAY_NAME); | |
917 | ||
918 | if (new_settings.UseGuardian) | |
919 | { | |
920 | m_Error_Status = SERVICES_install (hScManager, guard_service, guard_display_name, | |
921 | ISCGUARD_DISPLAY_DESCR, ISCGUARD_EXECUTABLE, ServerPath, NULL, NULL, | |
922 | status.AutoStart, NULL, NULL, false, true, svc_error); | |
923 | if (m_Error_Status != FB_SUCCESS) | |
924 | { | |
925 | CloseServiceManager(); | |
926 | return false; | |
927 | } | |
928 | ||
929 | // Set AutoStart to manual in preparation for installing the fb_server service | |
930 | status.AutoStart = false; | |
931 | ||
932 | } | |
933 | // do the install of server | |
934 | m_Error_Status = SERVICES_install (hScManager, remote_service, remote_display_name, | |
935 | REMOTE_DISPLAY_DESCR, (LPCTSTR) status.ServiceExecutable, ServerPath, NULL, NULL, | |
936 | status.AutoStart, NULL, NULL, false, !new_settings.UseGuardian, svc_error); | |
937 | if (m_Error_Status != FB_SUCCESS) | |
938 | { | |
939 | CloseServiceManager(); | |
940 | try | |
941 | { | |
942 | ServiceRemove(); | |
943 | m_Reset_Display_To_Existing_Values = true; | |
944 | EnableApplyButton(); | |
945 | } | |
946 | catch ( ... ) | |
947 | { | |
948 | } | |
949 | ||
950 | return false; | |
951 | } | |
952 | ||
953 | CloseServiceManager(); | |
954 | return true; | |
955 | } | |
956 | ||
957 | return false; | |
958 | } | |
959 | ||
960 | ||
961 | bool CFBDialog::ServiceRemove() | |
962 | { | |
963 | OpenServiceManager( GENERIC_READ | GENERIC_EXECUTE | GENERIC_WRITE ); | |
964 | if (hScManager) | |
965 | { | |
966 | const CString guard_service = GetServiceName(ISCGUARD_SERVICE); | |
967 | const CString guard_display_name = GetServiceName(ISCGUARD_DISPLAY_NAME); | |
968 | const CString remote_service = GetServiceName(REMOTE_SERVICE); | |
969 | const CString remote_display_name = GetServiceName(REMOTE_DISPLAY_NAME); | |
970 | ||
971 | m_Error_Status = SERVICES_remove (hScManager, guard_service, /*guard_display_name,*/ svc_error); | |
972 | if (m_Error_Status == IB_SERVICE_RUNNING) | |
973 | { | |
974 | CloseServiceManager(); | |
975 | return false; | |
976 | } | |
977 | ||
978 | m_Error_Status = SERVICES_remove (hScManager, remote_service,/* remote_display_name,*/ svc_error); | |
979 | if (m_Error_Status == IB_SERVICE_RUNNING) | |
980 | { | |
981 | CloseServiceManager(); | |
982 | return false; | |
983 | } | |
984 | CloseServiceManager(); | |
985 | return true; | |
986 | } | |
987 | ||
988 | return false; | |
989 | } | |
990 | ||
991 | ||
992 | bool CFBDialog::AppInstall(const CFBDialog::STATUS status) | |
993 | // This method is supplied as a corollary to ServiceInstall, | |
994 | // but doesn't do very much as there isn't much to do. | |
995 | { | |
996 | return ConfigureRegistryForApp( status ); | |
997 | } | |
998 | ||
999 | ||
1000 | bool CFBDialog::ConfigureRegistryForApp(const CFBDialog::STATUS status) | |
1001 | { | |
1002 | // The calling procedure will have already removed the | |
1003 | // service. All we need to do now | |
1004 | // is configure the registry if AutoStart has been set. | |
1005 | if ( status.AutoStart ) | |
1006 | { | |
1007 | // Add line to registry | |
1008 | HKEY hkey; | |
1009 | if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", | |
1010 | 0, KEY_WRITE, &hkey) == ERROR_SUCCESS) | |
1011 | { | |
1012 | ||
1013 | char full_name[MAX_PATH + 15] = ""; | |
1014 | GetFullAppPath( status, full_name); | |
1015 | if (!RegSetValueEx (hkey, "Firebird", 0,REG_SZ, (CONST BYTE*) full_name, sizeof(full_name) ) == | |
1016 | ERROR_SUCCESS) | |
1017 | { | |
1018 | HandleError(false, "AppInstall"); | |
1019 | return false; | |
1020 | } | |
1021 | } | |
1022 | else | |
1023 | { | |
1024 | HandleError(false, "AppInstall"); | |
1025 | return false; | |
1026 | } | |
1027 | } | |
1028 | else | |
1029 | { | |
1030 | // Remove registry entry if set to start automatically on boot. | |
1031 | HKEY hkey; | |
1032 | if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", | |
1033 | 0, KEY_QUERY_VALUE | KEY_WRITE, &hkey) == ERROR_SUCCESS) | |
1034 | ||
1035 | { | |
1036 | if (RegQueryValueEx(hkey, "Firebird", NULL, NULL, NULL, NULL) == ERROR_SUCCESS) | |
1037 | { | |
1038 | if (RegDeleteValue(hkey, "Firebird") == ERROR_SUCCESS) | |
1039 | return true; | |
1040 | ||
1041 | HandleError(false, "Removing registry entry to stop autorun failed."); | |
1042 | return false; | |
1043 | } | |
1044 | // If an error is thrown it must be because there is no | |
1045 | // entry in the registry so we shouldn't need to show an error. | |
1046 | return true; | |
1047 | } | |
1048 | ||
1049 | //Things are really bad - perhaps user has screwed up their registry? | |
1050 | HandleError(false, "Could not find HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run in the registry."); | |
1051 | return false; | |
1052 | } | |
1053 | ||
1054 | return true; | |
1055 | } | |
1056 | ||
1057 | ||
1058 | bool CFBDialog::AppRemove() | |
1059 | { | |
1060 | return ConfigureRegistryForApp( fb_status ); | |
1061 | } | |
1062 | ||
1063 | ||
1064 | static USHORT svc_error (SLONG error_status, const TEXT* string, SC_HANDLE service) | |
1065 | //This code is for use with the SERVICES_ functions | |
1066 | { | |
1067 | bool RaiseError = true; | |
1068 | ||
1069 | // process the kinds of errors we may be need to deal with quietly | |
1070 | switch ( error_status ) | |
1071 | { | |
1072 | case ERROR_SERVICE_CANNOT_ACCEPT_CTRL: | |
1073 | case ERROR_SERVICE_ALREADY_RUNNING: | |
1074 | case ERROR_SERVICE_DOES_NOT_EXIST: | |
1075 | RaiseError = false; | |
1076 | break; | |
1077 | } | |
1078 | ||
1079 | if (RaiseError) | |
1080 | CFBDialog::HandleSvcError(error_status, string); | |
1081 | ||
1082 | if (service != NULL) | |
1083 | CloseServiceHandle (service); | |
1084 | ||
1085 | return error_status; | |
1086 | } | |
1087 | ||
1088 | ||
1089 | void CFBDialog::ProcessMessages() | |
1090 | { | |
1091 | MSG Msg; | |
1092 | ||
1093 | while (::PeekMessage(&Msg, NULL, 0, 0, PM_NOREMOVE)) | |
1094 | { | |
1095 | if (!AfxGetApp()->PumpMessage()) | |
1096 | { | |
1097 | ::PostQuitMessage(0); | |
1098 | return; | |
1099 | } | |
1100 | } | |
1101 | ||
1102 | LONG lIdle = 0; | |
1103 | while (AfxGetApp()->OnIdle(lIdle++)) | |
1104 | ; | |
1105 | return; | |
1106 | } | |
1107 | ||
1108 | ||
1109 | void CFBDialog::HandleSvcError(SLONG error_status, const TEXT* string ) | |
1110 | // This method supports the static svc_error() function | |
1111 | // and essentially duplicates HandleError. Oh to be rid of the | |
1112 | // legacy code. | |
1113 | { | |
1114 | if (!error_status) | |
1115 | error_status = GetLastError(); | |
1116 | ||
1117 | LPTSTR lpMsgBuf = 0; | |
1118 | CString error_title = ""; | |
1119 | ||
1120 | const DWORD Size = FormatMessage( | |
1121 | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, | |
1122 | NULL, error_status, | |
1123 | MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language | |
1124 | (LPTSTR) &lpMsgBuf, 0, NULL ); | |
1125 | ||
1126 | if (Size) | |
1127 | error_title.Format("Error '%s' raised in %s", lpMsgBuf, string); | |
1128 | else | |
1129 | error_title.Format("Error Code %d raised in %s", error_status, string ); | |
1130 | ::MessageBox( NULL, lpMsgBuf, (LPCTSTR) error_title, MB_OK | MB_ICONINFORMATION ); | |
1131 | LocalFree( lpMsgBuf ); | |
1132 | } | |
1133 | ||
1134 | ||
1135 | void CFBDialog::HandleError(bool silent, const TEXT *string ) | |
1136 | { | |
1137 | const DWORD error_code = GetLastError(); | |
1138 | if (error_code == m_Error_Status) | |
1139 | { | |
1140 | //Always be silent if error has not already been thrown. | |
1141 | silent = true; | |
1142 | } | |
1143 | else | |
1144 | { | |
1145 | m_Error_Status = error_code; | |
1146 | } | |
1147 | ||
1148 | if (silent) | |
1149 | { | |
1150 | //And do what | |
1151 | } | |
1152 | else | |
1153 | { | |
1154 | LPTSTR lpMsgBuf = 0; | |
1155 | CString error_title = ""; | |
1156 | ||
1157 | const DWORD Size = FormatMessage( | |
1158 | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, | |
1159 | NULL, error_code, | |
1160 | MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language | |
1161 | (LPTSTR) &lpMsgBuf, 0, NULL ); | |
1162 | ||
1163 | if (Size) | |
1164 | error_title.Format("Error '%s' raised in %s", lpMsgBuf, string); | |
1165 | else | |
1166 | error_title.Format("Error Code %d raised in %s", error_code, string ); | |
1167 | ||
1168 | ShowError(lpMsgBuf, error_title); | |
1169 | ||
1170 | LocalFree( lpMsgBuf ); | |
1171 | } | |
1172 | } | |
1173 | ||
1174 | ||
1175 | void CFBDialog::ShowError( LPTSTR lpMsgBuf, CString error_title ) | |
1176 | { | |
1177 | CFBDialog::MessageBox( lpMsgBuf, (LPCTSTR) error_title, MB_OK | MB_ICONINFORMATION ); | |
1178 | } | |
1179 | ||
1180 | ||
1181 | void CFBDialog::OnButtonStop() | |
1182 | { | |
1183 | if ( fb_status.WasRunning ) | |
1184 | ServerStop(); | |
1185 | else | |
1186 | ServerStart( fb_status ); | |
1187 | } | |
1188 | ||
1189 | ||
1190 | void CFBDialog::OnOK() | |
1191 | { | |
1192 | // Extra validation can be added here | |
1193 | ||
1194 | //if IDAPPLY is enabled then click IDAPPLY to apply changes before we close | |
1195 | if (m_Apply.IsWindowEnabled()) | |
1196 | { | |
1197 | OnApply(); | |
1198 | } | |
1199 | ||
1200 | CDialog::OnOK(); | |
1201 | } | |
1202 | ||
1203 | ||
1204 | void CFBDialog::EnableApplyButton() | |
1205 | { | |
1206 | m_Apply.EnableWindow(TRUE); | |
1207 | m_Button_Stop.EnableWindow(FALSE); | |
1208 | } | |
1209 | ||
1210 | ||
1211 | void CFBDialog::DisableApplyButton() | |
1212 | { | |
1213 | m_Apply.EnableWindow(FALSE); | |
1214 | m_Button_Stop.EnableWindow(TRUE); | |
1215 | } | |
1216 | ||
1217 | ||
1218 | void CFBDialog::OnTimer(UINT_PTR /*nIDEvent*/) | |
1219 | { | |
1220 | UpdateServerStatus(); | |
1221 | } | |
1222 | ||
1223 | ||
1224 | void CFBDialog::OnDestroy() | |
1225 | { | |
1226 | // Kill the update timer | |
1227 | if (m_uiTimer) KillTimer(m_uiTimer); | |
1228 | ||
1229 | CDialog::OnDestroy(); | |
1230 | } | |
1231 | ||
1232 | ||
1233 | void CFBDialog::OnService() | |
1234 | { | |
1235 | EnableApplyButton(); | |
1236 | } | |
1237 | ||
1238 | ||
1239 | void CFBDialog::OnManualStart() | |
1240 | { | |
1241 | EnableApplyButton(); | |
1242 | } | |
1243 | ||
1244 | ||
1245 | void CFBDialog::OnApplication() | |
1246 | { | |
1247 | EnableApplyButton(); | |
1248 | } | |
1249 | ||
1250 | ||
1251 | void CFBDialog::OnAutoStart() | |
1252 | { | |
1253 | EnableApplyButton(); | |
1254 | } | |
1255 | ||
1256 | ||
1257 | void CFBDialog::OnUseGuardian() | |
1258 | { | |
1259 | EnableApplyButton(); | |
1260 | } | |
1261 | ||
1262 | ||
1263 | void CFBDialog::OnSuperServer() | |
1264 | { | |
1265 | EnableApplyButton(); | |
1266 | } | |
1267 | ||
1268 | ||
1269 | void CFBDialog::OnClassicServer() | |
1270 | { | |
1271 | EnableApplyButton(); | |
1272 | } | |
1273 | ||
1274 | ||
1275 | void CFBDialog::OnApply() | |
1276 | { | |
1277 | ApplyChanges(); | |
1278 | } | |
1279 | ||
1280 | ||
1281 | #ifdef FBCPL_UPDATE_CONF | |
1282 | // Currently (Fb 1.5.1) there is no longer any | |
1283 | // need to change the .conf file | |
1284 | void CFBDialog::SetGuardianUseInConf( bool UseGuardian ) | |
1285 | { | |
1286 | CString newvalue = ""; | |
1287 | if (UseGuardian) | |
1288 | newvalue = "1"; | |
1289 | else | |
1290 | newvalue = "0"; | |
1291 | ||
1292 | // One day the Config class will have set methods... | |
1293 | //if (Config::setGuardianOption( UseGuardian )) | |
1294 | ||
1295 | if (UpdateFirebirdConf("GuardianOption", newvalue ) ) | |
1296 | { | |
1297 | // Do we assign here? or wait for the | |
1298 | // update status routine to pick this up? | |
1299 | fb_status.UseGuardian = UseGuardian; | |
1300 | } | |
1301 | else | |
1302 | { | |
1303 | HandleError(false, "SetGuardianUseInConf"); | |
1304 | return; | |
1305 | } | |
1306 | } | |
1307 | ||
1308 | #ifdef MANAGE_CLASSIC | |
1309 | void CFBDialog::SetPreferredArchitectureInConf( bool UseClassic ) | |
1310 | { | |
1311 | CString newvalue = ""; | |
1312 | if ( UseClassic ) | |
1313 | newvalue = "1"; | |
1314 | else | |
1315 | newvalue = "0"; | |
1316 | ||
1317 | ||
1318 | // One day the Config class will have set methods... | |
1319 | // if (Config::setPreferClassicServer( UseClassic )) | |
1320 | ||
1321 | if ( UpdateFirebirdConf("PreferClassicServer", newvalue ) ) | |
1322 | { | |
1323 | // Do we assign here? or wait for the | |
1324 | // update status routine to pick this up? | |
1325 | fb_status.UseClassic = UseClassic; | |
1326 | } | |
1327 | else | |
1328 | { | |
1329 | HandleError(false, "SetPreferredArchitectureInConf"); | |
1330 | return; | |
1331 | } | |
1332 | } | |
1333 | #endif | |
1334 | ||
1335 | bool CFBDialog::UpdateFirebirdConf(CString option, CString value) | |
1336 | { | |
1337 | CStdioFile FbConfFile, FbConfFileNew; | |
1338 | CString FirebirdConfFilename = m_Root_Path + "firebird.conf"; | |
1339 | CString FirebirdConfNewname = FirebirdConfFilename + ".new"; | |
1340 | CString FirebirdConfOldname = FirebirdConfFilename + ".old"; | |
1341 | CString FirebirdConfLine = ""; | |
1342 | ||
1343 | if (!FbConfFile.Open(FirebirdConfFilename, CFile::modeReadWrite)) | |
1344 | return false; | |
1345 | if (!FbConfFileNew.Open(FirebirdConfNewname, CFile::modeCreate | | |
1346 | CFile::shareExclusive | CFile::modeWrite)) | |
1347 | { | |
1348 | return false; | |
1349 | } | |
1350 | ||
1351 | try | |
1352 | { | |
1353 | while (FbConfFile.ReadString(FirebirdConfLine) != NULL) | |
1354 | { | |
1355 | ||
1356 | if (FirebirdConfLine.Find( option ) > -1 ) | |
1357 | { | |
1358 | FirebirdConfLine = option + " = " + value; | |
1359 | } | |
1360 | ||
1361 | FbConfFileNew.WriteString( FirebirdConfLine + '\n'); | |
1362 | ||
1363 | } | |
1364 | } | |
1365 | catch (CFileException *e) | |
1366 | { | |
1367 | #ifdef _DEBUG | |
1368 | afxDump << "Problem updating " << e->m_strFileName << ".\n \ | |
1369 | cause = " << e->m_cause << "\n"; | |
1370 | #endif | |
1371 | } | |
1372 | ||
1373 | ||
1374 | bool result = false; | |
1375 | FbConfFile.Close(); | |
1376 | FbConfFileNew.Close(); | |
1377 | ||
1378 | try | |
1379 | { | |
1380 | CFile::Rename(FirebirdConfFilename, FirebirdConfOldname); | |
1381 | CFile::Rename(FirebirdConfNewname, FirebirdConfFilename); | |
1382 | ||
1383 | //If we get this far then all is well and we can return good news | |
1384 | result = true; | |
1385 | } | |
1386 | catch (CFileException*) | |
1387 | { | |
1388 | CFile::Rename(FirebirdConfOldname, FirebirdConfFilename); | |
1389 | } | |
1390 | ||
1391 | //always try to delete the temporary old conf file. | |
1392 | CFile::Remove(FirebirdConfOldname); | |
1393 | ||
1394 | return result; | |
1395 | } | |
1396 | #endif //#ifdef FBCPL_UPDATE_CONF | |
1397 | ||
1398 | ||
1399 | void CFBDialog::SetAutoStart(const CFBDialog::STATUS status ) | |
1400 | { | |
1401 | if (status.UseService) | |
1402 | { | |
1403 | OpenServiceManager( GENERIC_READ | GENERIC_EXECUTE | GENERIC_WRITE ); | |
1404 | // Need to acquire database lock before reconfiguring. | |
1405 | if (hScManager) | |
1406 | { | |
1407 | SC_LOCK sclLock = LockServiceDatabase(hScManager); | |
1408 | ||
1409 | // If the database cannot be locked, report the details. | |
1410 | if (sclLock == NULL) | |
1411 | { | |
1412 | HandleError(false, "SetAutoStart - Could not lock service database"); | |
1413 | return; | |
1414 | } | |
1415 | ||
1416 | // The database is locked, so it is safe to make changes. | |
1417 | ||
1418 | CString service; | |
1419 | CString display_name; | |
1420 | if (status.UseGuardian) | |
1421 | { | |
1422 | service = GetServiceName(ISCGUARD_SERVICE); | |
1423 | display_name = GetServiceName(ISCGUARD_DISPLAY_NAME); | |
1424 | } | |
1425 | else | |
1426 | { | |
1427 | service = GetServiceName(REMOTE_SERVICE); | |
1428 | display_name = GetServiceName(REMOTE_DISPLAY_NAME); | |
1429 | } | |
1430 | ||
1431 | // Open a handle to the service. | |
1432 | SC_HANDLE hService = OpenService( | |
1433 | hScManager, // SCManager database | |
1434 | service, // name of service | |
1435 | SERVICE_CHANGE_CONFIG); // need CHANGE access | |
1436 | if (hService) | |
1437 | { | |
1438 | DWORD dwStartType = status.AutoStart ? SERVICE_AUTO_START : SERVICE_DEMAND_START; | |
1439 | ||
1440 | if (! ChangeServiceConfig( | |
1441 | hService, // handle of service | |
1442 | SERVICE_NO_CHANGE, // service type: no change | |
1443 | dwStartType, // change service start type | |
1444 | SERVICE_NO_CHANGE, // error control: no change | |
1445 | NULL, // binary path: no change | |
1446 | NULL, // load order group: no change | |
1447 | NULL, // tag ID: no change | |
1448 | NULL, // dependencies: no change | |
1449 | NULL, // account name: no change | |
1450 | NULL, // password: no change | |
1451 | display_name ) ) | |
1452 | { | |
1453 | HandleError(false, "ChangeServiceConfig in SetAutoStart"); | |
1454 | } | |
1455 | } | |
1456 | else | |
1457 | HandleError(false, "OpenService in SetAutoStart"); | |
1458 | ||
1459 | // Release the database lock. | |
1460 | UnlockServiceDatabase(sclLock); | |
1461 | ||
1462 | // Close the handle to the service. | |
1463 | CloseServiceHandle(hService); | |
1464 | } | |
1465 | ||
1466 | CloseServiceManager(); | |
1467 | ||
1468 | } | |
1469 | else | |
1470 | { | |
1471 | ConfigureRegistryForApp( status ); | |
1472 | } | |
1473 | } | |
1474 | ||
1475 | ||
1476 | bool CFBDialog::FirebirdRunning() | |
1477 | /* | |
1478 | * Check to see if Firebird is running as an application. | |
1479 | */ | |
1480 | { | |
1481 | const bool result = (bool) GetFirebirdHandle(); | |
1482 | bool guardian_running = (bool) GetGuardianHandle(); | |
1483 | ||
1484 | if (result && guardian_running) | |
1485 | fb_status.UseGuardian = guardian_running; | |
1486 | ||
1487 | return result; | |
1488 | } | |
1489 | ||
1490 | ||
1491 | HWND CFBDialog::GetFirebirdHandle() const | |
1492 | { | |
1493 | HWND result = GetSuperServerHandle(); | |
1494 | #ifdef MANAGE_CLASSIC | |
1495 | if ( !result ) | |
1496 | { | |
1497 | result = GetClassicServerHandle(); | |
1498 | } | |
1499 | #endif | |
1500 | return result; | |
1501 | } | |
1502 | ||
1503 | ||
1504 | HWND CFBDialog::GetSuperServerHandle() const | |
1505 | { | |
1506 | return ::FindWindow(szClassName, szWindowName); | |
1507 | } | |
1508 | ||
1509 | ||
1510 | #ifdef MANAGE_CLASSIC | |
1511 | HWND CFBDialog::GetClassicServerHandle() const | |
1512 | { | |
1513 | // oops - hard-coded string that is liable to change | |
1514 | // Plus, the original definition is hidden locally | |
1515 | // within a function in remote/windows (or whatever). | |
1516 | return ::FindWindow( "FB_Disabled", szWindowName); | |
1517 | } | |
1518 | #endif | |
1519 | ||
1520 | HWND CFBDialog::GetGuardianHandle() const | |
1521 | { | |
1522 | return ::FindWindow(GUARDIAN_CLASS_NAME, GUARDIAN_APP_LABEL); | |
1523 | } | |
1524 | ||
1525 | ||
1526 | bool CFBDialog::ServiceSupportAvailable() const | |
1527 | { | |
1528 | OSVERSIONINFO OsVersionInfo; | |
1529 | ZeroMemory(&OsVersionInfo, sizeof(OsVersionInfo)); | |
1530 | ||
1531 | // need to set the sizeof this structure for NT to work | |
1532 | OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); | |
1533 | ||
1534 | GetVersionEx(&OsVersionInfo); | |
1535 | ||
1536 | // true for NT family, false for 95 family | |
1537 | return (OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT); | |
1538 | } | |
1539 | ||
1540 | ||
1541 | bool CFBDialog::OpenServiceManager( DWORD DesiredAccess ) | |
1542 | { | |
1543 | if (!fb_status.ServicesAvailable) | |
1544 | return false; | |
1545 | ||
1546 | if (DesiredAccess == 0) | |
1547 | DesiredAccess = GENERIC_READ | GENERIC_EXECUTE | GENERIC_WRITE; | |
1548 | ||
1549 | // If the svc mgr is already opened, this function will return true since | |
1550 | // it has no way to know if the new access is the same that opened the svc mgr | |
1551 | // previously. | |
1552 | if (hScManager == NULL) | |
1553 | hScManager = OpenSCManager (NULL, SERVICES_ACTIVE_DATABASE, DesiredAccess ); | |
1554 | ||
1555 | return hScManager ? true : false; | |
1556 | } | |
1557 | ||
1558 | ||
1559 | void CFBDialog::CloseServiceManager() | |
1560 | { | |
1561 | if (hScManager == NULL) | |
1562 | return; | |
1563 | ||
1564 | try | |
1565 | { | |
1566 | CloseServiceHandle (hScManager); | |
1567 | } | |
1568 | catch (...) | |
1569 | { | |
1570 | // Err... what do we do now? | |
1571 | } | |
1572 | ||
1573 | hScManager = NULL; | |
1574 | } | |
1575 | ||
1576 | ||
1577 | void CFBDialog::GetFullAppPath( CFBDialog::STATUS status, char * app) | |
1578 | // This returns the fully qualified path and name of the application | |
1579 | // to start along with parameters -a and -c . | |
1580 | { | |
1581 | CString AppName = m_Root_Path; | |
1582 | ||
1583 | if ( status.UseGuardian ) | |
1584 | { | |
1585 | AppName += m_Guardian_Name; | |
1586 | ||
1587 | #ifdef MANAGE_CLASSIC | |
1588 | if (status.UseClassic) | |
1589 | { | |
1590 | AppName += ".exe -c -a"; | |
1591 | } | |
1592 | else | |
1593 | #endif | |
1594 | { | |
1595 | AppName += ".exe -a"; | |
1596 | } | |
1597 | } | |
1598 | else | |
1599 | { | |
1600 | GetServerName( status, AppName ); | |
1601 | } | |
1602 | ||
1603 | ::strcat(app, AppName); | |
1604 | } | |
1605 | ||
1606 | ||
1607 | void CFBDialog::GetServerName( CFBDialog::STATUS status, CString& AppName) const | |
1608 | { | |
1609 | #ifdef MANAGE_CLASSIC | |
1610 | if ( status.UseClassic ) | |
1611 | { | |
1612 | AppName += m_CS_Server_Name; | |
1613 | } | |
1614 | else | |
1615 | #endif | |
1616 | { | |
1617 | AppName += m_SS_Server_Name; | |
1618 | } | |
1619 | ||
1620 | AppName += ".exe -a"; | |
1621 | } | |
1622 | ||
1623 | ||
1624 | #ifdef MANAGE_CLASSIC | |
1625 | bool CFBDialog::GetPreferredArchitecture() | |
1626 | { | |
1627 | int option; | |
1628 | if (!initialised) | |
1629 | option = Config::getPreferredArchitecture(); | |
1630 | else | |
1631 | if (new_settings.UseClassic != fb_status.UseClassic) | |
1632 | option = new_settings.UseClassic; | |
1633 | else | |
1634 | option = fb_status.UseClassic; | |
1635 | ||
1636 | return (bool) option; | |
1637 | } | |
1638 | #endif | |
1639 | ||
1640 | ||
1641 | bool CFBDialog::UserHasSufficientRights() | |
1642 | { | |
1643 | bool HasRights = OpenServiceManager(0); | |
1644 | CloseServiceManager(); | |
1645 | return HasRights; | |
1646 | } |
0 | /* | |
1 | * PROGRAM: Firebird 2.0 control panel applet | |
2 | * MODULE: FBDialog.h | |
3 | * DESCRIPTION: Main file to provide GUI based server control functions | |
4 | * for Firebird 2.0 | |
5 | * | |
6 | * The contents of this file are subject to the Initial Developer's | |
7 | * Public License Version 1.0 (the "License"); you may not use this | |
8 | * file except in compliance with the License. You may obtain a copy | |
9 | * of the License here: | |
10 | * | |
11 | * http://www.ibphoenix.com?a=ibphoenix&page=ibp_idpl. | |
12 | * | |
13 | * Software distributed under the License is distributed on an "AS | |
14 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or | |
15 | * implied. See the License for the specific language governing rights | |
16 | * and limitations under the License. | |
17 | * | |
18 | * The Initial Developer of the Original Code is Paul Reeves. | |
19 | * | |
20 | * The Original Code is (C) 2003 Paul Reeves . | |
21 | * | |
22 | * All Rights Reserved. | |
23 | * | |
24 | * Contributor(s): ______________________________________. | |
25 | * | |
26 | */ | |
27 | ||
28 | ||
29 | ///////////////////////////////////////////////////////////////////////////// | |
30 | // CFBDialog dialog | |
31 | ||
32 | #if !defined(UTILITIES_FBDIALOG_H) | |
33 | #define UTILITIES_FBDIALOG_H | |
34 | ||
35 | //#pragma once | |
36 | ||
37 | #define FB_COMPILER_MESSAGE_STR(x) #x | |
38 | #define FB_COMPILER_MESSAGE_STR2(x) FB_COMPILER_MESSAGE_STR(x) | |
39 | #define FB_COMPILER_MESSAGE(desc) message(__FILE__ "(" \ | |
40 | FB_COMPILER_MESSAGE_STR2(__LINE__) "):" desc) | |
41 | ||
42 | #include "resource.h" // main symbols | |
43 | #include "res/fbcontrol.rc2" | |
44 | ||
45 | #include <winsvc.h> | |
46 | ||
47 | #include "../install/install_nt.h" | |
48 | #include "../install/servi_proto.h" | |
49 | #include "../install/registry.h" | |
50 | #include "../../remote/server/os/win32/window.h" | |
51 | #include "../../iscguard/iscguard.h" | |
52 | ||
53 | extern USHORT svc_error (SLONG, const TEXT*, SC_HANDLE); | |
54 | ||
55 | ||
56 | class CFBDialog : public CDialog | |
57 | { | |
58 | // Construction | |
59 | public: | |
60 | CFBDialog(CWnd* pParent = NULL); // standard constructor | |
61 | ||
62 | // Dialog Data | |
63 | //{{AFX_DATA(CFBDialog) | |
64 | enum { IDD = IDD_FBDIALOG }; | |
65 | CButton m_Server_Arch; | |
66 | CButton m_Super_Server; | |
67 | CButton m_Classic_Server; | |
68 | CButton m_Apply; | |
69 | CButton m_Use_Guardian; | |
70 | CButton m_Manual_Start; | |
71 | CButton m_Run_As_Application; | |
72 | CButton m_Run_As_Service; | |
73 | CButton m_Auto_Start; | |
74 | CButton m_Run_Type; | |
75 | CButton m_Button_Stop; | |
76 | CStatic m_Icon; | |
77 | CString m_FB_Version; | |
78 | CString m_Firebird_Status; | |
79 | //}}AFX_DATA | |
80 | ||
81 | // Overrides | |
82 | // ClassWizard generated virtual function overrides | |
83 | //{{AFX_VIRTUAL(CFBDialog) | |
84 | protected: | |
85 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support | |
86 | //}}AFX_VIRTUAL | |
87 | ||
88 | ||
89 | ||
90 | // Implementation | |
91 | protected: | |
92 | ||
93 | // Generated message map functions | |
94 | //{{AFX_MSG(CFBDialog) | |
95 | virtual BOOL OnInitDialog(); | |
96 | virtual void OnOK(); | |
97 | afx_msg void OnButtonStop(); | |
98 | afx_msg void OnTimer(UINT_PTR nIDEvent); | |
99 | afx_msg void OnDestroy(); | |
100 | afx_msg void OnService(); | |
101 | afx_msg void OnManualStart(); | |
102 | afx_msg void OnApplication(); | |
103 | afx_msg void OnAutoStart(); | |
104 | afx_msg void OnUseGuardian(); | |
105 | afx_msg void OnApply(); | |
106 | afx_msg void OnSuperServer(); | |
107 | afx_msg void OnClassicServer(); | |
108 | //}}AFX_MSG | |
109 | DECLARE_MESSAGE_MAP() | |
110 | ||
111 | //========= End of MSVC specific stuff | |
112 | ||
113 | //Our Stuff | |
114 | public: | |
115 | CString m_SS_Server_Name; | |
116 | CString m_Guardian_Name; | |
117 | CString m_Root_Path; | |
118 | CString m_ServerClassName; | |
119 | #ifdef MANAGE_CLASSIC | |
120 | CString m_ClassicClassName; | |
121 | CString m_CS_Server_Name; | |
122 | #endif | |
123 | bool m_Reset_Display_To_Existing_Values; | |
124 | bool m_Restore_old_status; | |
125 | ||
126 | UINT m_uiTimer; | |
127 | SC_HANDLE hScManager; | |
128 | ||
129 | SERVICE_STATUS service_status; | |
130 | ||
131 | DWORD m_Error_Status; //This is set by the calls to SERVICES_ | |
132 | //and is also set by GetLastError() | |
133 | //It is tested in ShowError to prevent | |
134 | //the same error message being reported. | |
135 | ||
136 | struct STATUS //This stores the current status | |
137 | { | |
138 | #ifdef MANAGE_CLASSIC | |
139 | bool UseClassic; | |
140 | #endif | |
141 | bool UseGuardian; | |
142 | bool ServicesAvailable; // Set via UpdateServerStatus() | |
143 | int ServerStatus; | |
144 | bool UseService; // This is a convenience. It is set when | |
145 | // ServiceStatus is checked and saves trying | |
146 | // to do the more complex evaluation of | |
147 | // ServiceStatus | |
148 | bool AutoStart; | |
149 | bool WasRunning; // Set via UpdateServerStatus(). Allows us | |
150 | // to check if server was running before we | |
151 | // updated our settings. | |
152 | bool SystemLogin; // Are we using LocalSystem to control the | |
153 | // service | |
154 | bool SufficientUserRights; // Does user have sufficient rights to change service | |
155 | ||
156 | CString ServerName; // Initially set by call to ViewRegistryEntries | |
157 | CString ServiceExecutable; // Initially set by call to ViewRegistryEntries | |
158 | ||
159 | } fb_status; | |
160 | ||
161 | ||
162 | STATUS new_settings; | |
163 | ||
164 | bool initialised; // False on startup | |
165 | //Check stuff | |
166 | bool CheckServiceInstalled( LPCTSTR service ); | |
167 | int DatabasesConnected(); | |
168 | ||
169 | //bool FirebirdInstalled(); Not implemented? | |
170 | bool FirebirdRunning(); | |
171 | ||
172 | //Get Stuff | |
173 | ||
174 | CString GetServiceName(const char* name) const; | |
175 | HWND GetSuperServerHandle() const; | |
176 | #ifdef MANAGE_CLASSIC | |
177 | HWND GetClassicServerHandle() const; | |
178 | #endif | |
179 | HWND GetFirebirdHandle() const; | |
180 | void GetFullAppPath( CFBDialog::STATUS status, char* app); | |
181 | HWND GetGuardianHandle() const; | |
182 | // bool GetGuardianUseSpecified(); | |
183 | bool GetPreferredArchitecture(); | |
184 | void GetServerName( CFBDialog::STATUS status, CString& AppName) const; | |
185 | int GetServerStatus(); | |
186 | ||
187 | bool ServiceSupportAvailable() const; | |
188 | void ViewRegistryEntries(); | |
189 | ||
190 | //Set stuff | |
191 | bool ConfigureRegistryForApp(const CFBDialog::STATUS status ); | |
192 | void SetAutoStart(const CFBDialog::STATUS status ); | |
193 | #ifdef FBCPL_UPDATE_CONF | |
194 | void SetGuardianUseInConf( bool UseGuardian ); | |
195 | #endif | |
196 | #ifdef MANAGE_CLASSIC | |
197 | void SetPreferredArchitectureInConf( bool UseClassic ); | |
198 | #endif | |
199 | #ifdef FBCPL_UPDATE_CONF | |
200 | bool UpdateFirebirdConf(CString option, CString value); | |
201 | #endif | |
202 | ||
203 | ||
204 | //Do stuff | |
205 | void ApplyChanges(); | |
206 | bool AppInstall(const CFBDialog::STATUS status ); | |
207 | bool AppRemove(); | |
208 | void CloseServiceManager(); | |
209 | void DisableApplyButton(); | |
210 | void EnableApplyButton(); | |
211 | void KillApp(); | |
212 | bool OpenServiceManager( DWORD DesiredAccess ); | |
213 | void ProcessMessages(); | |
214 | void ResetCheckBoxes(const CFBDialog::STATUS status ); | |
215 | bool ServerStop(); | |
216 | bool ServerStart(const CFBDialog::STATUS status ); | |
217 | bool ServiceInstall(CFBDialog::STATUS status ); | |
218 | bool ServiceRemove(); | |
219 | static void HandleSvcError(SLONG status, const TEXT* string); | |
220 | void HandleError(bool silent, const TEXT* string ); | |
221 | void ShowError( LPTSTR lpMsgBuf, CString error_title ); | |
222 | void UpdateServerStatus(); | |
223 | bool UserHasSufficientRights(); | |
224 | bool ValidateInstalledServices(); | |
225 | }; | |
226 | ||
227 | ||
228 | #endif // UTILITIES_FBDIALOG_H | |
229 |
0 | /* | |
1 | * PROGRAM: Firebird 2.0 control panel applet | |
2 | * MODULE: fbpanel.cpp | |
3 | * DESCRIPTION: The FBPanel unit does the following things: | |
4 | * - It manages the display of the icon in the | |
5 | * Control Panel manager | |
6 | * - It tests whether Firebird is installed | |
7 | * - If Fb is installed it sets the status of items | |
8 | * that can be read from the Firebird registry entries | |
9 | * and launches the Applet. | |
10 | * | |
11 | * Everything else is handled by the fbdialog unit. This is | |
12 | * not a good thing as UI stuff is integrated with management | |
13 | * and diagnostic stuff. A better design for Fb 2.0 would be | |
14 | * to separate everything out and share the code with the | |
15 | * existing command line tools that manage services and | |
16 | * installation settings. | |
17 | * | |
18 | * The contents of this file are subject to the Initial Developer's | |
19 | * Public License Version 1.0 (the "License"); you may not use this | |
20 | * file except in compliance with the License. You may obtain a copy | |
21 | * of the License here: | |
22 | * | |
23 | * http://www.ibphoenix.com?a=ibphoenix&page=ibp_idpl. | |
24 | * | |
25 | * Software distributed under the License is distributed on an "AS | |
26 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or | |
27 | * implied. See the License for the specific language governing rights | |
28 | * and limitations under the License. | |
29 | * | |
30 | * The Initial Developer of the Original Code is Paul Reeves. | |
31 | * | |
32 | * The Original Code is (C) 2003 Paul Reeves . | |
33 | * | |
34 | * All Rights Reserved. | |
35 | * | |
36 | * Contributor(s): ______________________________________. | |
37 | * | |
38 | */ | |
39 | ||
40 | ||
41 | #include "stdafx.h" | |
42 | #include "../install/registry.h" | |
43 | #include "../jrd/build_no.h" | |
44 | ||
45 | #include "FBPanel.h" | |
46 | #include "FBDialog.h" | |
47 | #include <Shlwapi.h> | |
48 | ||
49 | ||
50 | LONG CFBPanel::OnInquire(UINT /*uAppNum*/, NEWCPLINFO* pInfo) | |
51 | { | |
52 | ||
53 | AFX_MANAGE_STATE(AfxGetStaticModuleState()); | |
54 | // Fill in the data | |
55 | pInfo->dwSize = sizeof(NEWCPLINFO); // important | |
56 | pInfo->dwFlags = 0; | |
57 | pInfo->dwHelpContext = 0; | |
58 | pInfo->lData = 0; | |
59 | pInfo->hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON1)); | |
60 | // Shouldn't this read FB 2 without fixing the minor version? | |
61 | strcpy(pInfo->szName, "Firebird "FB_MAJOR_VER" Server Manager"); | |
62 | strcpy(pInfo->szInfo, "Configure Firebird "FB_MAJOR_VER" Database Server"); | |
63 | strcpy(pInfo->szHelpFile, ""); | |
64 | return 0; // OK (don't send CPL_INQUIRE msg) | |
65 | } | |
66 | ||
67 | ||
68 | LONG CFBPanel::OnDblclk(HWND hwndCPl, UINT /*uAppNum*/, LONG /*lData*/) | |
69 | { | |
70 | ||
71 | AFX_MANAGE_STATE(AfxGetStaticModuleState()); | |
72 | ||
73 | // Create the dialog box using the parent window handle | |
74 | CFBDialog dlg(CWnd::FromHandle(hwndCPl)); | |
75 | bool error = true; | |
76 | try | |
77 | { | |
78 | // Check if Firebird is installed by reading the registry | |
79 | HKEY hkey; | |
80 | if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_KEY_ROOT_INSTANCES, 0, KEY_QUERY_VALUE, &hkey) | |
81 | == ERROR_SUCCESS) | |
82 | { | |
83 | char rootpath[MAX_PATH - 2]; | |
84 | DWORD buffer_size = sizeof(rootpath); | |
85 | if (RegQueryValueEx(hkey, FB_DEFAULT_INSTANCE, NULL, NULL, LPBYTE(rootpath), &buffer_size) | |
86 | == ERROR_SUCCESS) | |
87 | { | |
88 | PathAddBackslash(rootpath); | |
89 | dlg.m_Root_Path = rootpath; | |
90 | } | |
91 | ||
92 | RegCloseKey(hkey); | |
93 | ||
94 | dlg.m_FB_Version = "not known"; | |
95 | CString afilename = dlg.m_Root_Path + "gbak.exe"; | |
96 | buffer_size = GetFileVersionInfoSize( (LPCTSTR) afilename, 0); | |
97 | void* VersionInfo = new char [buffer_size]; | |
98 | void* ProductVersion = 0; | |
99 | void* SpecialBuild = 0; | |
100 | void* PrivateBuild = 0; | |
101 | UINT ValueSize; | |
102 | if ( GetFileVersionInfo((LPCTSTR) afilename, 0, buffer_size, VersionInfo) ) | |
103 | { | |
104 | VerQueryValue( VersionInfo, "\\StringFileInfo\\040904E4\\ProductVersion", | |
105 | &ProductVersion, &ValueSize); | |
106 | if (ValueSize) | |
107 | { | |
108 | dlg.m_FB_Version = "Version "; | |
109 | dlg.m_FB_Version += (char*) ProductVersion; | |
110 | } | |
111 | VerQueryValue( VersionInfo, "\\StringFileInfo\\040904E4\\SpecialBuild", | |
112 | &SpecialBuild, &ValueSize); | |
113 | if (ValueSize) | |
114 | { | |
115 | dlg.m_FB_Version += " "; | |
116 | dlg.m_FB_Version += (char*) SpecialBuild; | |
117 | } | |
118 | VerQueryValue( VersionInfo, "\\StringFileInfo\\040904E4\\PrivateBuild", | |
119 | &PrivateBuild, &ValueSize); | |
120 | if (ValueSize) | |
121 | { | |
122 | dlg.m_FB_Version += " "; | |
123 | dlg.m_FB_Version += (char*) PrivateBuild; | |
124 | } | |
125 | /**/ | |
126 | } | |
127 | delete[] (char*) VersionInfo; | |
128 | ||
129 | error = false; | |
130 | // Show the dialog box | |
131 | if (dlg.DoModal() != IDOK) | |
132 | return 0; | |
133 | } | |
134 | } | |
135 | catch ( ... ) | |
136 | { | |
137 | //raise an error | |
138 | error = true; | |
139 | } | |
140 | ||
141 | if (error) | |
142 | { | |
143 | dlg.MessageBox("Firebird does not appear to be installed correctly.", "Installation Error", MB_OK); | |
144 | } | |
145 | return 0; | |
146 | } | |
147 | ||
148 |
0 | /* | |
1 | * PROGRAM: Firebird 2.0 control panel applet | |
2 | * MODULE: fbpanel.h | |
3 | * | |
4 | * The contents of this file are subject to the Initial Developer's | |
5 | * Public License Version 1.0 (the "License"); you may not use this | |
6 | * file except in compliance with the License. You may obtain a copy | |
7 | * of the License here: | |
8 | * | |
9 | * http://www.ibphoenix.com?a=ibphoenix&page=ibp_idpl. | |
10 | * | |
11 | * Software distributed under the License is distributed on an "AS | |
12 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or | |
13 | * implied. See the License for the specific language governing rights | |
14 | * and limitations under the License. | |
15 | * | |
16 | * The Initial Developer of the Original Code is Paul Reeves. | |
17 | * | |
18 | * The Original Code is (C) 2003 Paul Reeves . | |
19 | * | |
20 | * All Rights Reserved. | |
21 | * | |
22 | * Contributor(s): ______________________________________. | |
23 | * | |
24 | */ | |
25 | ||
26 | ||
27 | #if !defined(UTILITIES_FBPANEL_H) | |
28 | #define UTILITIES_FBPANEL_H | |
29 | ||
30 | #include "ctrlpan.h" | |
31 | ||
32 | class CFBPanel : public CControlPanel | |
33 | { | |
34 | public: | |
35 | virtual LONG OnInquire(UINT uAppNum, NEWCPLINFO* pInfo); | |
36 | virtual LONG OnDblclk(HWND hwndCPl, UINT uAppNum, LONG lData); | |
37 | ||
38 | }; | |
39 | ||
40 | #endif // UTILITIES_FBPANEL_H | |
41 |
0 | // | |
1 | // FBCONTROL.RC2 - resources Microsoft Visual C++ does not edit directly | |
2 | // | |
3 | ||
4 | #ifdef APSTUDIO_INVOKED | |
5 | #error this file is not editable by Microsoft Visual C++ | |
6 | #endif //APSTUDIO_INVOKED | |
7 | ||
8 | ||
9 | ///////////////////////////////////////////////////////////////////////////// | |
10 | // Add manually edited resources here... | |
11 | ||
12 | ///////////////////////////////////////////////////////////////////////////// | |
13 | ||
14 | #define USER_ACCOUNT_IN_USE "Service is controlled by non-LocalSystem User Account. Server Configuration is disabled." | |
15 | #define CONFIG_OUT_OF_SYNC "The installed configuration is out of sync with reality. Use this applet to reset." | |
16 | #define INSUFFICIENT_USER_RIGHTS "You do not have sufficient user rights. Server Configuration is disabled." | |
17 | ||
18 | ||
19 |
0 | //{{NO_DEPENDENCIES}} | |
1 | // Microsoft Developer Studio generated include file. | |
2 | // Used by FBControl.rc | |
3 | // | |
4 | #define IDS_RUNNING 1 | |
5 | #define IDS_STOPPED 2 | |
6 | #define IDS_SERVICE_STOPPED 3 | |
7 | #define IDAPPLY 3 | |
8 | #define IDS_SERVICE_START_PENDING 4 | |
9 | #define IDS_SERVICE_STOP_PENDING 5 | |
10 | #define IDS_SERVICE_RUNNING 6 | |
11 | #define IDS_SERVICE_CONTINUE_PENDING 7 | |
12 | #define IDS_SERVICE_PAUSE_PENDING 8 | |
13 | #define IDS_SERVICE_PAUSED 9 | |
14 | #define IDS_APPLICATION_RUNNING 10 | |
15 | #define IDS_APPLICATION_STOPPED 11 | |
16 | #define IDS_APPLY 12 | |
17 | #define IDI_ICON1 102 | |
18 | #define IDD_FBDIALOG 1000 | |
19 | #define IDC_BUTTON_STOP 1001 | |
20 | #define IDC_SERVICE 1002 | |
21 | #define IDC_APPLICATION 1003 | |
22 | #define IDC_AUTO_START 1004 | |
23 | #define IDC_MANUAL_START 1005 | |
24 | #define IDC_RUNNING 1006 | |
25 | #define IDC_SUPERSERVER 1006 | |
26 | #define IDC_USE_GUARDIAN 1007 | |
27 | #define IDI_ICON4 1007 | |
28 | #define IDC_FB_VERSION 1008 | |
29 | #define IDC_CLASSICSERVER 1009 | |
30 | #define IDC_STATUS_ICON 1011 | |
31 | #define IDC_RUN_TYPE 1012 | |
32 | #define IDC_SERVER_ARCH 1013 | |
33 | #define IDC_FIREBIRD_STATUS 1014 | |
34 | #define IDC_CLASSIC_SERVER 1015 | |
35 | #define IDC_SUPER_SERVER 1016 | |
36 | #define IDC_CONFIG_DISABLED_NOTICE 1028 | |
37 | ||
38 | // Next default values for new objects | |
39 | // | |
40 | #ifdef APSTUDIO_INVOKED | |
41 | #ifndef APSTUDIO_READONLY_SYMBOLS | |
42 | #define _APS_NEXT_RESOURCE_VALUE 1008 | |
43 | #define _APS_NEXT_COMMAND_VALUE 32771 | |
44 | #define _APS_NEXT_CONTROL_VALUE 1016 | |
45 | #define _APS_NEXT_SYMED_VALUE 1001 | |
46 | #endif | |
47 | #endif |
0 | // stdafx.cpp : source file that includes just the standard includes | |
1 | // FBControl.pch will be the pre-compiled header | |
2 | // stdafx.obj will contain the pre-compiled type information | |
3 | ||
4 | #include "stdafx.h" | |
5 | ||
6 | ||
7 |
0 | // stdafx.h : include file for standard system include files, | |
1 | // or project specific include files that are used frequently, but | |
2 | // are changed infrequently | |
3 | // | |
4 | ||
5 | #if !defined(AFX_STDAFX_H__A4777E9A_E00D_11D6_9193_0050564001ED__INCLUDED_) | |
6 | #define AFX_STDAFX_H__A4777E9A_E00D_11D6_9193_0050564001ED__INCLUDED_ | |
7 | ||
8 | #if _MSC_VER > 1000 | |
9 | #pragma once | |
10 | #endif // _MSC_VER > 1000 | |
11 | ||
12 | #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers | |
13 | ||
14 | #include <afxwin.h> // MFC core and standard components | |
15 | #include <afxext.h> // MFC extensions | |
16 | ||
17 | #undef TRACE // TRACE is used by Firebird too. | |
18 | ||
19 | #include "firebird.h" | |
20 | ||
21 | #ifdef HAVE_MATH_H | |
22 | #include <math.h> | |
23 | #endif | |
24 | ||
25 | #ifdef HAVE_STRING_H | |
26 | #include <string.h> | |
27 | #endif | |
28 | ||
29 | #ifdef TIME_WITH_SYS_TIME | |
30 | # include <sys/time.h> | |
31 | # include <time.h> | |
32 | #else | |
33 | # ifdef HAVE_SYS_TIME_H | |
34 | # include <sys/time.h> | |
35 | # else | |
36 | # include <time.h> | |
37 | # endif | |
38 | #endif | |
39 | ||
40 | #ifdef HAVE_SYS_TIMEB_H | |
41 | # include <sys/timeb.h> | |
42 | #endif | |
43 | ||
44 | #ifdef HAVE_LOCALE_H | |
45 | #include <locale.h> | |
46 | #endif | |
47 | ||
48 | #ifdef HAVE_PTHREAD_H | |
49 | #include "fb_pthread.h" | |
50 | #endif | |
51 | ||
52 | #include "../../jrd/ibase.h" | |
53 | ||
54 | //{{AFX_INSERT_LOCATION}} | |
55 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. | |
56 | ||
57 | #endif // !defined(AFX_STDAFX_H__A4777E9A_E00D_11D6_9193_0050564001ED__INCLUDED_) |
60 | 60 | virtual void setActive(ULONG id, bool active); |
61 | 61 | virtual void listSessions(); |
62 | 62 | |
63 | os_utils::CtrlCHandler ctrlCHandler; | |
64 | ||
63 | 65 | private: |
64 | 66 | void runService(size_t spbSize, const UCHAR* spb); |
65 | 67 | |
198 | 200 | |
199 | 201 | void TraceSvcUtil::runService(size_t spbSize, const UCHAR* spb) |
200 | 202 | { |
201 | os_utils::CtrlCHandler ctrlCHandler; | |
202 | ||
203 | 203 | ISC_STATUS_ARRAY status; |
204 | 204 | |
205 | 205 | if (isc_service_start(status, &m_svcHandle, 0, |
320 | 320 | fb_utils::FbShutdown appShutdown(fb_shutrsn_app_stopped); |
321 | 321 | |
322 | 322 | AutoPtr<UtilSvc> uSvc(UtilSvc::createStandalone(argc, argv)); |
323 | TraceSvcUtil traceUtil; | |
324 | ||
323 | 325 | try |
324 | 326 | { |
325 | TraceSvcUtil traceUtil; | |
326 | ||
327 | 327 | fbtrace(uSvc, &traceUtil); |
328 | 328 | } |
329 | 329 | catch (const Firebird::Exception& ex) |
330 | 330 | { |
331 | Firebird::StaticStatusVector temp; | |
332 | ||
333 | ex.stuffException(temp); | |
334 | isc_print_status(temp.begin()); | |
335 | ||
336 | return FINI_ERROR; | |
331 | if (!traceUtil.ctrlCHandler.getTerminated()) | |
332 | { | |
333 | Firebird::StaticStatusVector temp; | |
334 | ||
335 | ex.stuffException(temp); | |
336 | isc_print_status(temp.begin()); | |
337 | ||
338 | return FINI_ERROR; | |
339 | } | |
337 | 340 | } |
338 | 341 | |
339 | 342 | return FINI_OK; |
0 | /* | |
1 | * PROGRAM: Windows NT installation utilities | |
2 | * MODULE: registry.h | |
3 | * DESCRIPTION: Defines for the registry | |
4 | * | |
5 | * The contents of this file are subject to the Independant Developers | |
6 | * Public License Version 1.0 (the "License"); you may not use this file | |
7 | * except in compliance with the License. You may obtain a copy | |
8 | * of the License at http://www.ibphoenix.com/IDPL.html | |
9 | * | |
10 | * Software distributed under the License is distributed on an | |
11 | * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express | |
12 | * or implied. See the License for the specific language governing | |
13 | * rights and limitations under the License. | |
14 | * | |
15 | * The Original Code was created by Inprise Corporation | |
16 | * and its predecessors. Portions created by Inprise Corporation are | |
17 | * Copyright (C) Inprise Corporation. | |
18 | * | |
19 | * All Rights Reserved. | |
20 | * Contributor(s): Paul Reeves__________________________________. | |
21 | */ | |
22 | ||
23 | ||
24 | #ifndef REGISTRY_DEFINES_H | |
25 | #define REGISTRY_DEFINES_H | |
26 | ||
27 | static const char* const REG_KEY_ROOT_COMPANY = "SOFTWARE\\Firebird Project"; | |
28 | static const char* const REG_KEY_ROOT_PRODUCT = "SOFTWARE\\Firebird Project\\Firebird Server"; | |
29 | static const char* const REG_KEY_ROOT_INSTANCES = "SOFTWARE\\Firebird Project\\Firebird Server\\Instances"; | |
30 | ||
31 | #endif // REGISTRY_DEFINES_H |
31 | 31 | |
32 | 32 | #include "../yvalve/MasterImplementation.h" |
33 | 33 | #include "../common/classes/rwlock.h" |
34 | #include "../common/classes/ClumpletReader.h" | |
34 | 35 | #include "../jrd/inf_pub.h" |
35 | 36 | #include "../common/isc_proto.h" |
36 | 37 | #include "../jrd/acl.h" |
110 | 111 | if (status->getState() & Firebird::IStatus::STATE_ERRORS) |
111 | 112 | return false; |
112 | 113 | |
113 | UCHAR* const end = bigBuffer.end(); | |
114 | ||
115 | while (buf < end) | |
116 | { | |
117 | UCHAR item = buf[0]; | |
118 | ++buf; | |
119 | const USHORT length = (USHORT) gds__vax_integer(buf, 2); | |
114 | for (ClumpletReader p(ClumpletReader::InfoResponse, buf, bigBuffer.getCount()); !p.isEof(); p.moveNext()) | |
115 | { | |
116 | const USHORT length = (USHORT) p.getClumpLength(); | |
120 | 117 | // Prevent information out of sync. |
121 | 118 | UCHAR lengthByte = length > MAX_UCHAR ? MAX_UCHAR : length; |
122 | buf += 2; | |
123 | ||
124 | switch(item) | |
119 | ||
120 | switch(p.getClumpTag()) | |
125 | 121 | { |
126 | 122 | case isc_info_tra_id: |
127 | 123 | tdr.add(TDR_TRANSACTION_ID); |
128 | 124 | tdr.add(lengthByte); |
129 | tdr.add(buf, lengthByte); | |
125 | tdr.add(p.getBytes(), lengthByte); | |
130 | 126 | break; |
131 | 127 | |
132 | 128 | case fb_info_tra_dbpath: |
133 | 129 | tdr.add(TDR_DATABASE_PATH); |
134 | 130 | tdr.add(lengthByte); |
135 | tdr.add(buf, lengthByte); | |
131 | tdr.add(p.getBytes(), lengthByte); | |
136 | 132 | break; |
137 | ||
138 | case isc_info_end: | |
139 | return true; | |
140 | } | |
141 | ||
142 | buf += length; | |
133 | } | |
143 | 134 | } |
144 | 135 | |
145 | 136 | return true; |
456 | 456 | if (status->getState() & Firebird::IStatus::STATE_ERRORS) |
457 | 457 | return; |
458 | 458 | |
459 | const UCHAR* p = buf; | |
460 | redo = false; | |
461 | ||
462 | while (!redo && *p != isc_info_end && p < buf + buf_len) | |
459 | ClumpletReader p(ClumpletReader::InfoResponse, buf, buf_len); | |
460 | ||
461 | for (redo = false; !(redo || p.isEof()); p.moveNext()) | |
463 | 462 | { |
464 | const UCHAR item = *p++; | |
465 | const USHORT len = static_cast<USHORT>(gds__vax_integer(p, 2)); | |
466 | ||
467 | p += 2; | |
468 | ||
469 | switch (item) | |
463 | switch (p.getClumpTag()) | |
470 | 464 | { |
471 | 465 | case isc_info_firebird_version: |
472 | versions = (TEXT*) p; | |
466 | versions = (TEXT*) p.getBytes(); | |
473 | 467 | break; |
474 | 468 | |
475 | 469 | case isc_info_implementation: |
476 | implementations = (TEXT*) p; | |
470 | implementations = (TEXT*) p.getBytes(); | |
477 | 471 | break; |
478 | 472 | |
479 | 473 | case fb_info_implementation: |
480 | dbis = p; | |
481 | if (dbis[0] * 6 + 1 > len) | |
474 | dbis = p.getBytes(); | |
475 | if (dbis[0] * 6u + 1u > p.getClumpLength()) | |
482 | 476 | { |
483 | 477 | // fb_info_implementation value appears incorrect |
484 | 478 | dbis = NULL; |
491 | 485 | |
492 | 486 | case isc_info_truncated: |
493 | 487 | redo = true; |
488 | // fall down... | |
489 | case isc_info_end: | |
494 | 490 | break; |
495 | 491 | |
496 | 492 | default: |
497 | 493 | (Arg::Gds(isc_random) << "Invalid info item").raise(); |
498 | 494 | } |
499 | ||
500 | p += len; | |
501 | 495 | } |
502 | 496 | |
503 | 497 | // Our buffer wasn't large enough to hold all the information, |
1120 | 1114 | * |
1121 | 1115 | **************************************/ |
1122 | 1116 | ISC_STATUS_ARRAY status_vector; |
1123 | SCHAR buffer[64]; | |
1124 | ||
1125 | if (isc_blob_info(status_vector, b, sizeof(blob_items), blob_items, sizeof(buffer), buffer)) | |
1117 | UCHAR buffer[64]; | |
1118 | ||
1119 | if (isc_blob_info(status_vector, b, sizeof(blob_items), blob_items, sizeof(buffer), (SCHAR*)buffer)) | |
1126 | 1120 | { |
1127 | 1121 | isc_print_status(status_vector); |
1128 | 1122 | return FALSE; |
1129 | 1123 | } |
1130 | 1124 | |
1131 | const UCHAR* p = reinterpret_cast<UCHAR*>(buffer); | |
1132 | UCHAR item; | |
1133 | while ((item = *p++) != isc_info_end) | |
1134 | { | |
1135 | const USHORT l = gds__vax_integer(p, 2); | |
1136 | p += 2; | |
1137 | const SLONG n = gds__vax_integer(p, l); | |
1138 | p += l; | |
1125 | for (ClumpletReader p(ClumpletReader::InfoResponse, buffer, sizeof(buffer)); !p.isEof(); p.moveNext()) | |
1126 | { | |
1127 | UCHAR item = p.getClumpTag(); | |
1128 | if (item == isc_info_end) | |
1129 | break; | |
1130 | ||
1139 | 1131 | switch (item) |
1140 | 1132 | { |
1141 | 1133 | case isc_info_blob_max_segment: |
1142 | 1134 | if (max_seg) |
1143 | *max_seg = n; | |
1135 | *max_seg = p.getInt(); | |
1144 | 1136 | break; |
1145 | 1137 | |
1146 | 1138 | case isc_info_blob_num_segments: |
1147 | 1139 | if (seg_count) |
1148 | *seg_count = n; | |
1140 | *seg_count = p.getInt(); | |
1149 | 1141 | break; |
1150 | 1142 | |
1151 | 1143 | case isc_info_blob_total_length: |
1152 | 1144 | if (size) |
1153 | *size = n; | |
1145 | *size = p.getInt(); | |
1154 | 1146 | break; |
1155 | 1147 | |
1156 | 1148 | default: |
2662 | 2654 | if (status->getState() & Firebird::IStatus::STATE_ERRORS) |
2663 | 2655 | return; |
2664 | 2656 | |
2665 | const UCHAR* p = buffer; | |
2666 | UCHAR item; | |
2667 | ||
2668 | while ((item = *p++) != isc_info_end) | |
2669 | { | |
2670 | const USHORT l = static_cast<USHORT>(gds__vax_integer(p, 2)); | |
2671 | p += 2; | |
2672 | const USHORT n = static_cast<USHORT>(gds__vax_integer(p, l)); | |
2673 | p += l; | |
2674 | switch (item) | |
2657 | for (ClumpletReader p(ClumpletReader::InfoResponse, buffer, sizeof(buffer)); !p.isEof(); p.moveNext()) | |
2658 | { | |
2659 | const USHORT n = static_cast<USHORT>(p.getInt()); | |
2660 | switch (p.getClumpTag()) | |
2675 | 2661 | { |
2676 | 2662 | case isc_info_ods_version: |
2677 | 2663 | *ods_version = n; |
2679 | 2665 | |
2680 | 2666 | case isc_info_ods_minor_version: |
2681 | 2667 | *ods_minor_version = n; |
2668 | break; | |
2669 | ||
2670 | case isc_info_end: | |
2682 | 2671 | break; |
2683 | 2672 | |
2684 | 2673 | default: |