Раньше я некоторое время путал:
Путаница в Unicode и многобайтовых статьях
После прочтения комментариев всех участников, плюс:
Глядя на старую статью (2001 год): http://www.hastingsresearch.com/net/04-unicode-limitations.shtml,, в которой говорится о юникоде:
является 16-битным определением символов
позволяя теоретическую сумму более
65 000 знаков. Тем не менее
полные наборы символов мира
добавить до 170000 символов.
и глядя на текущую «современную» статью: http://en.wikipedia.org/wiki/Unicode
Наиболее часто используемые кодировки
UTF-8 (который использует 1 байт для всех
Символы ASCII, которые имеют одинаковые
кодовые значения как в стандарте ASCII
кодирование, и до 4 байтов для других
персонажи), ныне устаревший UCS-2
(который использует 2 байта для всех
символы, но не включает каждый
символ в стандарте Unicode),
и UTF-16 (который расширяет UCS-2, используя
4 байта для кодирования символов отсутствуют
от UCS-2).
Похоже, что в опциях компиляции в VC2008 опции "Unicode" в наборах символов действительно означают "Unicode, закодированный в UCS-2" (или UTF-16? Я не уверен)
Я пытаюсь проверить это, запустив следующий код в VC2008
#include <iostream>
int main()
{
// Use unicode encoded in UCS-2?
std::cout << sizeof(L"我爱你") << std::endl;
// Use unicode encoded in UCS-2?
std::cout << sizeof(L"abc") << std::endl;
getchar();
// Compiled using options Character Set : Use Unicode Character Set.
// print out 8, 8
// Compiled using options Character Set : Multi-byte Character Set.
// print out 8, 8
}
Похоже, что во время компиляции с параметрами набора символов Unicode результат соответствовал моему предположению.
А как насчет многобайтового набора символов? Что означает многобайтовый набор символов в современном «современном» мире? :)