Size: a a a

Ассемблер

2020 June 21

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
tfyvgubhinjkwaxdrctfgvyuhbjnmkzsdxfcvghbjnsxdfcgvhbjehhfhn
всё работает только тогда, когда я вывожу ту переменную, в которую значение было занесено мною через консоль, а вот объявленную переменную со значением Áá выводит кракозябрами. как быть?

include \masm32\include\masm32rt.inc

.data

 msg1 db "Áá",0
 cyr db 500 dup(0)

.code
begin:

 push offset msg1
 call StdOutW

 push 500
 push offset cyr
 call StdInW
 
 push offset cyr
 call StdOutW

 push offset cyr
 call StdOutW

 invoke ExitProcess,0

end begin
используй на 1 символ 2 байта. в макросах/библиотеке макросов masm есть пиримеры. там надо __UNICODE__ equ 1 использовать в начале кода. и посмотри что такое UCSTR
источник

D

Denis in Ассемблер
> используй на 1 символ 2 байта

и отсрочишь проблему на год
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
источник

D

Denis in Ассемблер
неправильный, плохой юникод
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Z:\masm32\examples\unicode_extended\UnicodeTest_Console
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
а как ты эти символы набираешь?
источник

t

tfyvgubhinjkwaxdrctf... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
а как ты эти символы набираешь?
копипаст
источник

s

s54816 in Ассемблер
Denis
неправильный, плохой юникод
UTF-8 в Windows API поддерживается с какого-то, относительно недавнего билда 10. До этого поддерживался только вывод в консоль, и то не всегда. Поэтому если нужна переносимость, а тем более Windows 7, которая всё ещё очень у многих, то это UTF-8 — неправильный и плохой, а W-функции правильные и хорошие.
источник

s

s54816 in Ассемблер
У тебя исходник в какой кодировке?
источник

t

tfyvgubhinjkwaxdrctf... in Ассемблер
s54816
У тебя исходник в какой кодировке?
Windows-1251
источник

s

s54816 in Ассемблер
И давно в Windows-1251 есть "a" с диакритикой? У тебя либо редактор при сохранении преобразует символы, либо исходник сохраняется в 1252, и кодировки ломает сам компилятор.
источник

A

Aleksandr in Ассемблер
tfyvgubhinjkwaxdrctfgvyuhbjnmkzsdxfcvghbjnsxdfcgvhbjehhfhn
всё работает только тогда, когда я вывожу ту переменную, в которую значение было занесено мною через консоль, а вот объявленную переменную со значением Áá выводит кракозябрами. как быть?

include \masm32\include\masm32rt.inc

.data

 msg1 db "Áá",0
 cyr db 500 dup(0)

.code
begin:

 push offset msg1
 call StdOutW

 push 500
 push offset cyr
 call StdInW
 
 push offset cyr
 call StdOutW

 push offset cyr
 call StdOutW

 invoke ExitProcess,0

end begin
возможно, все же dw?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
нет в 1251 символов Áá как ты указал выше в своем коде, тогда вопрос - как у тя в исходнике это все отобраажается?
источник

t

tfyvgubhinjkwaxdrctf... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
нет в 1251 символов Áá как ты указал выше в своем коде, тогда вопрос - как у тя в исходнике это все отобраажается?
источник

A

Aleksandr in Ассемблер
dw!
источник

s

s54816 in Ассемблер
Закрой, открой заново.
источник

t

tfyvgubhinjkwaxdrctf... in Ассемблер
хорошо
источник

s

s54816 in Ассемблер
Ну какой dw, если информации для dw нет?
источник

t

tfyvgubhinjkwaxdrctf... in Ассемблер
s54816
Закрой, открой заново.
сбросилось на Аа
источник