Итак, я хочу напечатать символ авторского права, а putchar () просто обрезает самый старший байт символа, что приводит к непечатному символу.
Я использую Ubuntu MATE и кодировку, которую я используюэто en_US.UTF-8.Теперь я знаю, что шестнадцатеричное значение для © равно 0xc2a9, и когда я пытаюсь использовать putchar ('©' - 0x70), это дает мне 9 с шестнадцатеричным значением 0x39, добавляя к нему 0x70, и вы получите 0xa9, который является наименьшимстарший байт 0xc2a9
#include <stdio.h>
main()
{
printf("©\n");
putchar('©');
putchar('\n');
}
Я ожидаю, что результат будет:
©
©
вместо:
©
�