Well, there are a lot of places where problems
could occur in this process. Basically you need to find out what character encoding is being used/expected at various stages in the process. Whenever you
exchange data between systems, make sure both systems are using the same encoding. Do not trust the default encoding supplied by a platform; it may be different from platform to platform. Whenever you create a Reader or Writer, insert an InputStreamReader or OutputStreamWriter which specifies exactly what encoding to use. And remember that even if your programs do everything correctly, if you look at data using another program (e.g. Notepad, or a web browser, or a database tool) it may be that that tool is expecting a different encoding. Or some tools may not have the necessary fonts to display the character you want to look at. It's all very annoying to deal with, and hard to give more advice in general - a lot depends on the situation. But the basic key is to make sure you know what enconding is used at every step of the process. Good luck.