Unicode Filenames in Windows Media Player for Pocket PC

Update: Windows Mobile 2003 software for Pocket PC
Good news! The new 9-series player supplied with PPC2003 devices now handles Unicode. Even if the font needed to display the script is not present, pWMP is still able to open and play the media file. What's more, even the playlist generated is in Unicode! As such, the NLS file is no longer required, unless you'd like to get extra encoding support in Pocket Internet Explorer. But a word of caution - the NLS files below are taken from PPC2002 system. In moving from PPC2002 to PPC2003, the base OS has changed from Windows CE 3.x to Windows CE 4.x. Usually NLS files are OS-specific, which means that the old files will probably not work on the new systems. As an alternative, you can also try the NLS file from CE-Star Suite. You'd still need to set the font file if your script is not supported by the built-in font file.


One problem with the English version of Pocket PC 2002 which annoys me a lot is that Windows Media Player for Pocket PC (pWMP) cannot open files which has non-latin characters in the filename. The old version of pWMP which came with Pocket PC 2000 can at least open the files, although playlists don't work. Starting from pWMP 7.1, the player cannot open the files at all. One solution would be to rename the media files that are being transferred onto the PPC. Renaming tens of files is annoying, but when one needs to replace those files frequently, renaming quickly becomes intolerable.

During my search for a solution, I found something interesting. If the locale is set to that which corresponds to the script of the filename, then pWMP can open that file. For example, let's say the filename contains Russian alphabets, then setting the locale to Russian, Ukrainian, or Serbian (Cyrillic) would let pWMP open the file. Note that it is not the language that matters. Rather it's the script, which is why the Russian file can be open with Ukrainian or Serbian (Cyrillic) locale. This is all fine if you just need Greek or Turkish or Greek locale; if you need Chinese or Japanese locale, then you'd have another problem - they are only available on Chinese or Japanese version of PPC.

In early March 2003, Daimaou posted on Brighthand instructions to enable reading and writing Japanese. I noticed that on his English version of PPC, he managed to make Japanese locale one of the options. Right then I knew the problem is solved.

1. Things needed

Just one file, wince.nls from a Chinese or Japanese device. The file is located in the /Windows folder. This file is one of the components for national language support (NLS) that enables supporting different locales.

Get the file here. These are taken from iPAQ H3870. Choose one version:
Simplified Chinese
Traditional Chinese
Japanese

2. What To Do

Copy the wince.nls file into the /Windows folder on your device, overwriting the one already there. You might get "Access is denied" error if you try to copy the file using File Explorer. In that case you need to copy the file with the help of ActiveSync on your desktop, or use a third-party file manager (for example the excellent GSFinder+). Soft reset and you should see new locales in Regional Settings. Select the locale that you need. That's it!

Locale selection screenshot
Locale selection. On the left, Simplified Chinese file has been loaded; in the middle, Traditional Chinese; on the right, Japanese.

3. Extra Functionality and Remarks

Update July 2005: It seems that normally, the codepages are enabled automatically as soon as you've loaded the right NLS file. So you don't normally have to tweak the registry as in the following.

Almost as a bonus, Pocket Internet Explorer (PIE) will be able to display web pages in Chinese/Japanese encoding. Extra encoding options will be visible for Japanese version of wince.nls, but not using the Chinese versions. To make the encoding Big5 and GB2312 visible in the option, use a registry editor, preferably one that can import registry file like TascalRegEdit, to merge the following into the registry:

[HKEY_CLASSES_ROOT\MIME\Database\Codepage\950]
"Level"=hex:\
     07,07,00,00
"ProportionalFont"="Arial"
"FixedWidthFont"="Courier New"
"Description"="Chinese Traditional (BIG5)"
"BodyCharset"="big5"

[HKEY_CLASSES_ROOT\MIME\Database\Codepage\936]
"Level"=hex:\
     07,07,00,00
"ProportionalFont"="Arial"
"FixedWidthFont"="Courier New"
"Description"="Chinese Simplified (GB2312)"
"BodyCharset"="gb2312"

Apart from Level which is a Binary value, the others are String values. Also, depending on the locale selected, documents with the abovementioned encoding can be read in Pocket Word. For example, if Chinese(PRC) is selected, GB encoded documents can be read; for Chinese(Taiwan), Big5; for Japanese, Shift-JIS.

Remember that you need to soft reset after copying the wince.nls file onto the device. The original file is in ROM, therefore you can safely overwrite the file. In case you want to revert to the original version of the file, follow these steps:

  1. Change the locale setting back to English
  2. Using a file explorer or through ActiveSync, rename the file extension to something else, e.g. wince.bak
  3. Soft reset the device
  4. Now you can delete the file you just renamed (i.e. wince.bak file in my example)

If you haven't set the font file, the characters might not display properly. Check here to see how you can do so.

WMP playing screenshot
Playing in WMP. Notice the Japanese filename.



Arrow left Return To Main Page