Проблемы с кодировкой UTF-8,как сравнить символы Кириллицы?
- Войдите на сайт для отправки комментариев
Сб, 01/05/2021 - 13:19
Прошу прощения если вопрос тупой я третий день на Ардуино . Проблема возникла при сравнении символов кириллицы, на сколько я понял я Arduino IDE
использует кодировку UTF-8 что кодирует кириллицу в два байта и в массив записывает одну букву в два элемента массива.Я разобрался как вывести код буквы..
Вопрос, если можно вывести код символа можно ли ввести символ кириллицы через этот выведенный код а не через обратный слеш как я сделал в конце?
char c[] = "Курачоку";//объявляем массив
void setup()
{
Serial.begin(9600); // Инициируем работу шины UART на скорости 9600 бит/сек.
int i = 0;
while (i < sizeof(c) )// проводим через весь массив
{
Serial.print("'"); Serial.print((char) c[i]); Serial.print("' => ");// Отправляем символ из массива как (char) в монитор последовательного порта.
Serial.println((byte) c[i]);// Отправляем символ как (byte) в монитор последовательного порта.
i ++;
}
Serial.println("\320\200");//определяю символ с кодом через обратный слеш
}
void loop() {
}
Прошу прощения если вопрос тупой я третий день на Ардуино . Проблема возникла при сравнении символов кириллицы, на сколько я понял я Arduino IDE
использует кодировку UTF-8 что кодирует кириллицу в два байта и в массив записывает одну букву в два элемента массива.Я разобрался как вывести код буквы..
Вопрос, если можно вывести код символа можно ли ввести символ кириллицы через этот выведенный код а не через обратный слеш как я сделал в конце?
static inline constexpr bool isUnicode(const uint8_t c) { return c == 208 || c == 209; } void setup(){ Serial.begin(115200); const char * aWord = "Привет!"; Serial.println(aWord); for (uint8_t i = 0; i < strlen(aWord); i++) { if (isUnicode(aWord[i])) Serial.write(aWord+i++, 2); else Serial.print(aWord[i]); Serial.print(' '); } Serial.println(); Serial.println("Вот и всё!"); } void loop() {} // // РЕЗУЛЬТАТ // // Привет! // П р и в е т ! // Вот и всё!Спасибо за ответ на обоих форумах)
Оказалось что не все еще решено .Вот что выдает. Может у меня что то не так с Ардуиной? Или может я неправильно настроил среду , ответьте если не сложно....
Вы привели верхний левый угол окна монитора порта. А в нижнем правом, у него есть скорость порта. Её не видно, но уверен, что проблема в ней. Она должна совпадать с той, которая задана в строке №4 программы. Поправьте где хотите, это всё равно, но скорости должны совпадать.
Да . Действительно все заработало , спасибо еще раз!