The Portable App environment writes Unicode data as ANSI into the registry, which results in that KchmViewer Portable fails to open recent files having non-Latin characters in their paths.
Here is the screenshot about what happens when recent files are opened from the File menu. The word “Английский” should be instead of the unprintable characters between words "Category" and "English".
Prior to open this issue, I have contacted the author of KchmViewer, and he pointed me to the KchmViewer's code where recent files are loaded from the paths passed. This code does not depend on the encoding of a file path. This code calls Qt's API that performs well with non-Latin characters, e.g., "Английский", at least on *nix platforms.
Then, I've checked what the Windows Registry's records contain. Here is the screenshot. The bug is highlighted with the red rectangle.
The issue is in that Qt's API writes data in Unicode (according to its source code). However, the Portable App environment writes then this data in ANSI instead of Unicode into the registry. When opening a recent file, the Portable App environment passes the wrong registry data to Qt’s API, which results in the fail presented in the first screenshot.