char(2713) and fprintf('\x2713\n') don't show a checkmark in the command window

25 ビュー (過去 30 日間)
FM
FM 2022 年 3 月 29 日
コメント済み: FM 2022 年 3 月 30 日
According to https://en.wikipedia.org/wiki/Check_mark, the unicode for a checkmark is 2713. However, `char(2713)` doesn't show a checkmark in the command window. It shows a question mark with a box around it. If I copy and paste it into Vim or Word, it shows up as a capital `S` with a smudge in the upper circle.
I also tried `fprintf('\x2713\n')`, which also printed a question mark inside a box.
Is there anyway to get a checkmark? (I am using Matlab 2019a)
I eventually want the checkmark to show when I copy and paste it into Vim or Word. Funnily enough I can enter unicode 2713 into Vim and get a checkmark. In Insert mode, press ctrl+V followed by `u2713` without quotes.
P.P.S. I can't even copy and paste the checkmark from Vim to the MATLAB command window. It shows up as a question mark within a box. Same if I try to paste it within single quotes to create a char array.

採用された回答

Stephen23
Stephen23 2022 年 3 月 29 日
編集済み: Stephen23 2022 年 3 月 29 日
"According to https://en.wikipedia.org/wiki/Check_mark, the unicode for a checkmark is 2713."
Sure, lets try it using both FPRINTF and CHAR:
fprintf('\x2713\n%s\n',char(10003))
✓ ✓
"However, `char(2713)` doesn't show a checkmark in the command window."
Nor should it. Hexadecimal x2713 converts to decimal 10003, which is the correct value to use with CHAR.
The incorrect decimal value that you tried converts to... hexadecimal xA99, aka U+0A99, which is the Gujarati Letter Nga, and looks like this:
So far everything seems to be working exactly as expected.
However you are very unlikely to get any meaningful characters if you keep mixing up decimal and hexadecimal.
  8 件のコメント
Rik
Rik 2022 年 3 月 29 日
You could try setting a different font for the command window. I doubt that would work, but it might. The unicode version supported in the command window is not documented as far as I could find.
FM
FM 2022 年 3 月 29 日
I appreciate the suggestion, but will chose to work around the inability to display checkmarks. It is more important that I be able to view the command window in a way that I find to be most helpful for focusing. Eventually, I'm going to copy and paste the text elsewhere anyway, so if my solution is so fragile as to require a certain font, it's a nonstarter. I chose to use the plain alphabetic letter "Y" instead of a checkmark. Thanks!

サインインしてコメントする。

その他の回答 (1 件)

KSSV
KSSV 2022 年 3 月 29 日
編集済み: KSSV 2022 年 3 月 29 日
How about using sprintf.
s = sprintf('\x2713')
s = '✓'
  3 件のコメント
Rik
Rik 2022 年 3 月 30 日
This might have to do with the font settings, but even on the same OS you might get different results: on R2007b I get a placeholder box when I run this code, but on R2017b (same OS) I do get the checkmark.
FM
FM 2022 年 3 月 30 日
I wouldn't want to change fonts, so I consider the wish for a checkmark in the command window to be not a good idea. Thanks.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

製品


リリース

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by