I have an Oracle database version 8.0.5 on Windows NT with character set WE8ISO8859P1 and I want to import the data to the new Oracle 8.1.7 on Windows XP, which has the character set ar8mswin1256. The problem is that all Arabic characters appear like ?????
First, let me note that database version 9.2 is the first version that is certified for use on Windows XP. Version 8.1.7 was never supported on XP for the database server (client only).
Your error is most likely due to character set conversion performed by the export and import utilities, not by the databases in question. Metalink NOTE 227332.1 discusses the NLS considerations for import and export utilities.
The export and import utilities will examine the NLS_LANG environment variable to determine what character set conversion should be performed, if any. In your case, before running the export utility on the source database, set NLS_LANG to
Once the export is completed, transfer the dump file to the target database server and, before running the import utility, again set the NLS_LANG variable. I would again set it to match the character set of the SOURCE database (that's right, the source). Use the same syntax as above. When the import utility runs, you should see messages regarding the fact that the import utility is going to perform character set conversion.
The default character set used by export and import utilities on most systems (especially with the older versions you're using) are US7ASCII. Since you're converting to a 7-bit character set when doing the export, your 8-bit characters (such as arabic) will have been lost during the export. By maintaining an 8-bit character set throughout the process, you should be able to preserve the 8-bit characters.