# 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: ```batch chcp 65001 >nul 2>&1 ``` This sets the console code page to UTF-8 (65001) before running any commands. **Fixed files:** - `run.bat` - `demo.bat` - `build.bat` - `test.bat` ### 2. Go Program Fixes The main Go program now automatically sets the console to UTF-8 mode on Windows: ```go // Set console to UTF-8 on Windows to prevent garbled text if runtime.GOOS == "windows" { setConsoleUTF8() } ``` **Implementation details:** - Added `setConsoleUTF8()` function that executes `chcp 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: ```batch 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: ```batch 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)