in src/compiler/msvc.rs [2614:2641]
fn local_oem_codepage_conversions() {
use crate::util::wide_char_to_multi_byte;
use windows_sys::Win32::Globalization::GetOEMCP;
let current_oemcp = unsafe { GetOEMCP() };
// We don't control the local OEM codepage so test only if it is one of:
// United Stats, Latin-1 and Latin-1 + euro symbol
if current_oemcp == 437 || current_oemcp == 850 || current_oemcp == 858 {
// Non-ASCII characters
const INPUT_STRING: &str = "ÇüéâäàåçêëèïîìÄÅ";
// The characters in INPUT_STRING encoded per the OEM codepage
const INPUT_BYTES: [u8; 16] = [
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
];
// Test the conversion from the OEM codepage to UTF-8
assert_eq!(from_local_codepage(&INPUT_BYTES).unwrap(), INPUT_STRING);
// The characters in INPUT_STRING encoded in UTF-16
const INPUT_WORDS: [u16; 16] = [
199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239, 238, 236, 196, 197,
];
// Test the conversion from UTF-16 to the OEM codepage
assert_eq!(wide_char_to_multi_byte(&INPUT_WORDS).unwrap(), INPUT_BYTES);
}
}