Accessing UTF-8 Locale on Windows
Problem:
Translating code that assumes the use of "en_US.UTF-8" locale to Windows requires identifying the equivalent locale and ensuring its availability.
Answer:
Historically, UTF-8 was not supported as the system locale in Windows due to compatibility concerns. However, Microsoft has introduced gradual support for UTF-8 locales:
Method 1 (Windows 10 and above):
- Enable "Beta: Use Unicode UTF-8 for worldwide language support" through Region settings.
- Use setlocale(LC_ALL, ".utf8") to configure UTF-8 encoding.
Method 2 (Older Windows Versions):
- Use app-local deployment or static linking with Windows SDK version 17134 or later.
- Enable UTF-8 through a static link or setlocale as described in Method 1.
Recent Updates:
- Since 2019, programs can use the UTF-8 locale without enabling the beta flag.
- Use the following options when compiling with MSVC: /execution-charset:utf-8 or /utf-8.
- Set ActiveCodePage property in the appxmanifest file.
The above is the detailed content of How Can I Access and Use UTF-8 Locale on Windows?. For more information, please follow other related articles on the PHP Chinese website!
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn