2.4 KiB
UTF-8 Encoding Fix for Chinese Windows Systems
Problem
On Chinese Windows systems, the default console encoding is often GBK/GB2312, which causes garbled text when the MITM proxy outputs UTF-8 characters. This results in unreadable console output, especially for Unicode characters and symbols.
Solution
This fix implements a comprehensive UTF-8 encoding solution for Windows systems:
1. Batch File Fixes
All batch files now include the command:
chcp 65001 >nul 2>&1
This sets the console code page to UTF-8 (65001) before running any commands.
Fixed files:
run.batdemo.batbuild.battest.bat
2. Go Program Fixes
The main Go program now automatically sets the console to UTF-8 mode on Windows:
// Set console to UTF-8 on Windows to prevent garbled text
if runtime.GOOS == "windows" {
setConsoleUTF8()
}
Implementation details:
- Added
setConsoleUTF8()function that executeschcp 65001 - Automatic detection of Windows OS using
runtime.GOOS - Enhanced console output with UTF-8 symbols (✓, 🚀, 🛑, etc.)
3. Testing
A test script utf8_test.bat is provided to verify the fix works correctly:
utf8_test.bat
This script:
- Sets console to UTF-8
- Displays various Unicode characters (Chinese, Japanese, Korean)
- Runs the MITM proxy in test mode to verify UTF-8 output
Usage
Simply run any of the batch files as usual. The UTF-8 encoding will be automatically configured:
run.bat # Start the proxy with UTF-8 support
demo.bat # Run the demo with UTF-8 support
utf8_test.bat # Test UTF-8 encoding specifically
Verification
After applying the fix, you should see:
- ✓ Clear display of Unicode characters
- 🚀 Proper rendering of emoji symbols
- 正确显示中文字符 (Correct display of Chinese characters)
- 日本語の文字が正しく表示される (Japanese characters display correctly)
Technical Notes
- Code page 65001 is the Windows UTF-8 code page
- The fix is automatically applied only on Windows systems
- No changes are needed for Linux/macOS systems
- The original functionality remains unchanged
Compatibility
- Windows 10/11: Full support
- Windows 8/8.1: Full support
- Windows 7: Partial support (depends on system configuration)
- Chinese, Japanese, Korean Windows: Full support
- English Windows: Full support (no changes to existing behavior)