Другие языки программирования и технологии

Как исправить кодировку?

Имеется файл с кодом, открывается через Word или другой текстовый редактор. Все комментарии на русском превращаются в: " S1, S2 : Real; { S1, S2 - б㬬л н«Ґ¬Ґ­в®ў, а бЇ®«®¦Ґ­­ле ­Ё¦Ґ Ё ўлиҐ Ј« ў­®© ¤Ё Ј®­ «Ё, ᮮ⢥вб⢥­­®}".
S1, S2 : Real; { S1, S2 - суммы элементов, р сположеых иже и выше гл вой ди го ли, соответствео}

Источник: (он довольно древний, прошу строго не судить)
.386
.model flat, stdcall
includemasm32\include\windows.inc
includemasm32\include\user32.inc
includemasm32\include\kernel32.inc
includemasm32\include\gdi32.inc
includelibmasm32\lib\user32.lib
WndProcPROTO :DWORD, :DWORD, :DWORD, :DWORD
SetLayeredWindowAttributesPROTO :DWORD, :DWORD, :DWORD, :DWORD

.data
dlgnamedd 100

.data?
hInstancedd ?
sysMenudd ?
textdb 30000 dup(?)

.const
LMA_ALPHA equ 2

LMA_COLORKEY equ 1
WS_EX_LAYERED equ 80000h

.code
Main:
INVOKEGetModuleHandle, NULL
mov hInstance, eax
INVOKEDialogBoxParam, hInstance, dlgname, 0, ADDR WndProc, 0
INVOKEExitProcess, eax
WndProcPROChWin :DWORD, uMsg :DWORD, wParam :DWORD, lParam :DWORD
.if uMsg == WM_INITDIALOG
INVOKEGetWindowLongA,hWin,GWL_EXSTYLE
or eax,WS_EX_LAYERED
INVOKESetWindowLongA, hWin, GWL_EXSTYLE, eax
INVOKESetLayeredWindowAttributes, hWin, 220, 220, LMA_ALPHA
INVOKEGetSystemMenu, hWin, 0
mov sysMenu, eax
INVOKEDeleteMenu, sysMenu, 5, MF_BYPOSITION
INVOKEDeleteMenu, sysMenu, SC_SIZE, MF_BYCOMMAND
INVOKEDeleteMenu, sysMenu, SC_MAXIMIZE, MF_BYCOMMAND
INVOKEDeleteMenu, sysMenu, SC_RESTORE, MF_BYCOMMAND
.elseif uMsg == WM_COMMAND
.if wParam == 1001
INVOKEGetDlgItemText, hWin, 1000, ADDR text, 30000
INVOKECharToOem, ADDR text, ADDR text
INVOKESetDlgItemText, hWin, 1000, ADDR text
.elseif wParam == 1002
INVOKEGetDlgItemText, hWin, 1000, ADDR text, 30000
INVOKEOemToChar, ADDR text, ADDR text
INVOKESetDlgItemText, hWin, 1000, ADDR text
.endif
.elseif uMsg == WM_CLOSE
INVOKEEndDialog, hWin, 0
.endif
xor eax, eax
ret
WndProc endp
end Main

*.rc:
#include "masm32\include\resource.h"
1 24 "F:\\Другие\\mf.manifest"
100 DIALOGEX 10, 10, 300, 200
CAPTION ""
FONT 8, "MS Sans Serif"
STYLE 0x90CA0840
EXSTYLE 0x00000000
CLASS "#32770"
BEGIN
CONTROL "", 1000, EDIT, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP, 5, 5, 290, 170
CONTROL "Win » DOS", 1001, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 159, 179, 64, 16
CONTROL "DOS » Win", 1002, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 231, 179, 64, 16
END
Manasbek Koshmurzaev
Manasbek Koshmurzaev
37 544
Лучший ответ
в edit из cmd его открой, все ок должно быть. а еще akelpad может помочь (бывает в комплекте с total commander)
Тимур Темеков
Тимур Темеков
60 415
открой Notepad++-ом и выбери кодировку OEM 866

перевожу:
«S1, S2 : Real; { S1, S2 - ясммш Элеменров, Р яположешу иже и вшье гл вой ди го ли, яоорверярвео}»
в том же блокноте сохранить как и меняешь кодировку на нужную тебе