ACC2000: Unexpected Characters Appear When You Convert Databases That Have Non-U.S. English Characters (202479)



The information in this article applies to:

  • Microsoft Access 2000

This article was previously published under Q202479
Advanced: Requires expert coding, interoperability, and multiuser skills.

This article applies only to a Microsoft Access database (.mdb).

IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry


For a Microsoft Access 2002 version of this article, see 289525.

SYMPTOMS

When you convert to Microsoft Access 2000 a Microsoft Access 2.0, 95, or 97 database that contains characters specific to a foreign language, unexpected characters appear in the converted database.

CAUSE

Earlier versions of Microsoft Access use ANSI code pages to represent foreign language symbols. When you convert a database to Access 2000 (Jet 4.0), all data is converted to Unicode. This requires that the data be mapped from ANSI code pages to Unicode.

To determine which ANSI code page to use in the mapping process, the Jet database engine uses the code page of the operating system on which you are converting the database.

If the code page of your operating system is U.S. English (1252), the Jet database engine maps the characters specific to a foreign language by using the U.S. English code page. Using the U.S. English code page during the conversion process of a database with characters specific to a foreign language causes incorrect characters to appear in your converted database.

RESOLUTION

Convert databases that contain characters specific to a foreign language on an operating system that uses the code page of the foreign language in question.

When necessary, however, you can add two entries to your computer's registry to force the Jet database engine to use a specific code page when it converts a database.

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

To add the appropriate registry keys to your computer and convert your database, follow these steps:
  1. Open Registry Editor (regedit.exe).
  2. Add the following string values to the registry keys:
    Key nameValue nameValue typeValue data
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet3.xForceCPStringCode Page Number (Example: 1252)
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet2.xForceCPStringCode Page Number (Example: 1252)

  3. Close Registry Editor.
To convert your Access database, follow these steps:
  1. Quit Access 2000.
  2. Reopen Access 2000, and then open the database that you want to convert.
  3. When prompted, convert your database.

    WARNING: After you have successfully converted the database, remove the registry keys that you added earlier. If you do not do so, all the databases that you convert in the future will be converted with the code page that you specified in the registry.

Modification Type:MajorLast Reviewed:6/28/2004
Keywords:kbprb KB202479