Closed
Description
This issue tracks the TODO list in order to fix the encoding issue on Window.
Currently Bitcoin Core uses the ANSI encoding on Windows so that it would affected by user's language settings, they might not able to open some non-ASCII name files.
You can test all these changes in #13787 (includes leveldb changes)
Open PRs:
- Package the Windows installer in unicode mode (NSIS 3+) ([WIP] depends: Add native_nsis to support unicode #13827, Up for grab, or wait for Ubuntu 20.04 gitian builder host)
Merged PRs:
- Create the startup shortcut file in unicode mode (gui: Drop boost::scoped_array and use wchar_t API explicitly on Windows #13734)
- Make filelock work on unicode filename (utils: drop boost::interprocess::file_lock #13862)
- Use
_wfopen
instead offopen
on Windows to pass unicode filename (utils: Use _wfopen and _wfreopen on Windows #13866) - Make boost
fs::path
.string()
to be always encoded to utf-8 (utils: Make fs::path::string() always return utf-8 string on Windows #13877) - Wrap
ifstream
andofstream
to accept unicode filename. ( utils: Add fstream wrapper to allow to pass unicode filename on Windows #13878) - Get the command line arguments using unicode (utils: Convert Windows args to utf-8 string #13883)
- Make bdb read the filename using utf-8 (depends: Enable bdb unicode support for Windows #13884)
- Make
runCommand
works on unicode filename (utils: run commands using utf-8 string on Windows #13886) - Convert all
(...)A
function to(...)W
on Windows if it is related to filename or command line. (Call unicode API on Windows #13888) - Convert boost filesystem error messages from local multibyte to utf-8 (utils: Convert fs::filesystem_error messages from local multibyte to utf-8 on Windows #14192)
- Make leveldb read the filename using utf-8 (Use utf-8 to decode filename bitcoin-core/leveldb-subtree#18)