Purpose and background

<< Click to Display Table of Contents >>

Navigation:  Language drivers >

Purpose and background

Previous pageReturn to chapter overviewNext page

The purpose of language drivers

First of all, the language drivers are about the character set, and do not affect the numbers format, currency symbol or date formats.
The language drivers are always dependent on the current system extended ASCII character set with it's regional interpretation.
The BDE tables and the BDE table language drivers are not and never will be any substitution of Unicode.

So, residing in e.g. Paris and receiving Paradox tables with Cyrillic text data from your Bulgarian contact, these tables will not display as Cyrillics even though the associated language drivers of the tables are e.g. cyrr or ancyrr.
Equivalently you may experience single character drop outs here and there receiving tables of other languages using Latin letters but with some accented characters not present in your western available character set.
Of course, the Bulgarian contact will meet the same challenge receiving data from western contacts.

Second, the language drivers are also about sort order, that may vary from region to region even using the same character set or even the same spoken language - for example how to sort ligatures (like œ/oe, æ/ae, ij/ij, ß/ss, etc.) or digraphs, e.g. sorting 'aa' as last letter 'å' in some scandinavian countries (depending on context).

Character set background

As the typed or displayed characters are never stored as the characters per se but by their character codes, displaying the letter A will always depend on interpreting the character code #65 (hex #x41) as the letter A.

With the Extended ASCII character set and introduction of the IBM Code Page 437 (1981) the character code set was extended with codes 128-255 introducing various special letters as well as the now obsolete 48 box draw characters.
As the extended character set 128-255 only partially filled the need for language specific characters, various code pages (≈ "language drivers") were introduced for regional or language specific use.
For example, the õ (o tilde) character, not available with CP437, was introduced as char #148 in Code Page 860 (Portuguese) by substituting the CP437 #148 = ö (o diaeresis).
Later this character õ with CP850 moved to #228 (leaving #148 for ö) and with Windows-1252 this character moved once again to #245 (leaving #148 for the ” right hand double quote).

The BDE language driver character mapping

This is where the BDE language drivers come in, handling tables of distinct generations by keeping track of if a character stored in a table such as whether character code #148 is meant as an ö, õ, ö or ” (CP437, CP860, CP850, Win-1252).
Or if a character code #228 is to be read as Σ, Σ, õ or ä (CP437, CP860, CP850, Win-1252).

In this way, the above Code Pages will be cared for by, for example, the Paradox drivers ASCII, * , INTL850, DBWINWE0; provided the computer is using the Windows-1252/OEM 850 character set. *: CP860 is supported only by dBASE driver DB860PT0, there is no equivalent paradox driver.

This enables you to contain tables with various BDE language drivers in the same database without inter-table communication errors.
Just changing the language drivers of given tables is not recommended except for correcting table exports that have had a wrong driver previously applied.

The Euro (€) symbol

The character chosen for the Euro currency was announced in december 1996. In the following years this character was implementet with diffent character codes by Microsoft, Linux and Apple. In 1998 Microsoft announced the CodePage 858 allocating the Euro character to code #213 as the only deviation from CodePage 850, though the CodePage 858 was never implemented by the BDE.
In BDE the Euro character was implemented with language driver DBWINWE0 reflecting Windows CodePage 1252 where € is mapped to #0128.

__________________________
PdxEditor Application Help, 14 July 2026; © 2010-2026 Niels Knabe