plain string
Здесь имеет вид кодирования, который:Есть ли способ сделать обмен между utf-8 и простой строкой независимой от платформы?
Простая строка-буквальным, такие как
"plainstring"
кодируется как;Все стандартные библиотеки возвращаются или принимаются. Например:
std::cout << "I'm ok." ; // plain string, ok on my system,
// VS2015 x64 default encoding setting.
std::cout << u8"I'm wrong."; // got error display on my system
std::experimental::filesystem::path path("Some Right specified Path contains non-ASCII chars"); // ok
std::experimental::filesystem::path path2(u8"Some Path specified Path contains non-ASCII chars"); // error
std::experimental::filesystem::directory_iterator r(path); // ok
std::experimental::filesystem::directory_iterator r2(path2); // will throw exception
Насколько я знаю, мой sysytem (окна 10 x64) используют GB2312
кодировку для такой простой строки.
Но как преобразовать их в (и конвертировать назад) другую кодировку, такую как utf-8
, в платформу-независимый способ?
Вы имеете в виду 'экспериментальный' вместо' expermantal'? – Danh
Я изменил их. – ChungkingExpress
Вы пытались сохранить исходный файл в utf-8 с (и без) спецификацией? – Danh