On the blockchain itself, the note field is a plain byte array. I suspect that the issue is with either the encoding of the message before it gets converted to message-pack, or on the reverse.
When I copy base64 formatted version of the note from transaction details and decode it to human readable format, I see the note is okay(all the Azerbaijani letters are visible). It means that, algorand note functionality doesn’t support some characters for their json format.
So, given that you’ve decoded the base64 version from algoexplorer.io, into human readable format and got the right output means that the encoding path is good.
As for the decoding part - where have you see the malformed output ? if the malformed output was on algoexplorer.io, then it means that algoexplorer.io was not decoding the base64 correctly.
You mentioned “json” format above. which API have you used to acquire the said json ?
this is the note in algorand explorer.
and following is the correct version of the text.
{“Etiketin nömrəsi”:“21-001-251-00002”,
“Toxum istehsalçısı”:“Kamran Abdullayev”,
“Toxum istehsalçısının ünvanı”:“Baki şəhəri, Xəzər rayonu, Şüvəlan qəsəbəsi 013”,
“Bitkinin adı”:“Kartof”,
“Sortun adı”:“Telman”
,“Toxum partiyasının nömrəsi”:251
,“Toxumun reproduksiyası”:“Super elit1”
,“Partiyadakı çəkilər”:10000,
“Kisənin çəkisi”:50,
“İstehsal ili”:“2021”
,“Dərmanlamada istifadə olunmuş pestisidin adı”:“Vial Tras T SC, Tabu neo SC”}
Yes, I think that you’re correct. The issue looks as if it’s with algoexplorer.io.
I would rather if you wouldn’t use the term “algorand explorer”, as it’s not specific - there are other block explorer for the algorand blockchain ( I won’t specify these here, since that’s irrelevant ).
The above issue looks like a legit issue, and hopefully Randlabs could address that ( note that algoexplorer.io is not maintained by either the Algorand Foundation nor the Algorand Inc )
I checked other algorand blockchain exlorers. They also do not recognize Azerbaijani. Even ç which is used by French people and ö used in German.
Does it only recognize ascii characters?
As explained by @tsachi, the Algorand blockchain stores bytes. It does not care about encoding.
Block explorers are independent of the blockchain.
It looks like both Algoexplorer and Goalseeker currently only display ASCII and not UTF-8 notes.
So you cannot see the note properly in these explorers.
But this is just a display issue, not a chain issue.
Somebody could create yet another block explorer that displays UTF-8 without issue.
On the blockchain itself everything works perfectly.
The SDK and goal command also work perfectly.
Your dApp does not need to rely on an explorer, and can display the text properly.
What is your use case for needing the block explorer to display properly the note?