Special (Non-English) characters in filenames

The Cause
A small number of our users recently noticed and reported that some of their files began to have special characters in their filenames. We conducted an investigation and conducted some research until we determined the cause and how to address it.

This only affects users who use Windows on their server. The problem is described in a 7-year-old PHP bug entry: https://bugs.php.net/bug.php?id=47096

Essentially, PHP will use the locale set in the Windows Operating System’s Regional Settings. The filesystem only supports ascii characters because the locale is set to English by default.

The Solutions
1. So, now that we’ve identified the issue, we can address it. We love our customers and strive to automate every process for them. This, however, turns out to be one of those issues that we were unable to resolve and must rely on you, our users, to take additional steps to resolve.

If you are administering the machine yourself, go to Control Panel, then Regional Settings, and change the language to the locale you are using.

For German websites, make sure the locale is German. This will enable the use of umlaute.
Set the locale to Japanese if your website is in Japanese.

Take advantage of the support provided by your hosting provider if you are not the administrator or if you are having difficulty configuring the locale yourself.

2. If you want to export/import a WordPress with files/directories with non-English names, you should use PHP7 because it natively supports Unicode. You can use PHP7 to run All-in-One WP Migration export/import of files/directories with any characters in the file name.

3. If you are still using PHP 5.x and have files/directories that contain non-English characters, these files/directories will not properly migrate during export/import. For the time being, the workaround is to manually copy them via FTP/SFTP. This is a PHP 5.x limitation, and the only way around it is to switch to PHP7 and rerun the export/import.

Leave A Comment?