2

I have relatively simple code printing some emojis:

void loop() {
 // put your main code here, to run repeatedly:
 Serial.println("Hello world 😊❤👌😘💕👍🤦‍♀️🤦‍♂️😎✔👀");
}

Just in case it doesn't render very well, here's an image on how it looks like in Arduino IDE 2.0.3:

Screenshot of code with emojis rendered

However, the Serial Monitor sometimes displays emojis and sometimes not. It varies from line to line like so:

Hello world 😊���������💕��������♀�������‍♂️😎✔����
Hello world ���������������‍♀️🤦‍♂️😎✔👀
Hello world ��❤���������������������������������♂���😎✔👀
Hello world 😊❤👌😘💕👍🤦‍�������‍�������������
Hello world �������👌😘💕👍🤦‍♀️��������������✔����
Hello world 😊���������👍�����♀���🤦�����️�����������
Hello world ��❤��������👍��‍�����������♂�������✔���

Again, there's how it looks like on my Windows 10 machine:

Screenshot of garbage output

I verified that it's not a mistake in the baud rate. Both, Arduino and PC are set to 9600.

In Arduino IDE 1, the output is not colorful and some emojis are not rendered at all, but the result is much more consistent:

Screenshot of output in Arduino IDE 1

How to fix the scrambled output in Arduino IDE 2?

asked Dec 29, 2022 at 16:13
1
  • 1
    To be clear, this is a problem with handling any multi-byte UTF-8 encoding and potentially another problem on top of that with handling grapheme clusters. When I encountered this for the first time I think it was in using the degree symbol for a temperature reading (code point 0xB0) that encodes in UTF-8 as 0xC2 0xB0. Your odds of seeing the character correctly improve if you Serial.flush() and wait some time before and after multi-byte encodings and do not delay in the middle. In other words, increasing the odds that the Serial Monitor receive an entire UTF-8 sequence in a single buffer. Commented Dec 29, 2022 at 18:04

1 Answer 1

2

This is an issue of Arduino IDE 2.0.3. It was reported as issue 589 and issue 1405.

It was fixed on 9th of December 2022 [PR] and I can confirm it is fixed in nightly build 2.0.4-221229.

answered Dec 29, 2022 at 16:13

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.