Procedure ToCP1251(*s.Unicode)
Protected i
Protected *ptr.Unicode
While *s\u
If *s\u > 127 And *s\u < 256
*ptr = ?CP1251 + (*s\u - 128) * 2
*s\u = *ptr\u
EndIf
*s + SizeOf(Unicode)
Wend
EndProcedure
; Здесь вы можете сделать таблицу для символов своего языка и получить содержание на своём языке вместо cp1252.
DataSection
CP1251:
Data.u 1026, 1027, 8218, 1107, 8222, 8230, 8224, 8225, 8364, 8240, 1033
Data.u 8249, 1034, 1036, 1035, 1039, 1106, 8216, 8217, 8220, 8221, 8226
Data.u 8211, 8212, 152, 8482, 1113, 8250, 1114, 1116, 1115, 1119, 160
Data.u 1038, 1118, 1032, 164, 1168, 166, 167, 1025, 169, 1028, 171
Data.u 172, 173, 174, 1031, 176, 177, 1030, 1110, 1169, 181, 182
Data.u 183, 1105, 8470, 1108, 187, 1112, 1029, 1109, 1111, 1040, 1041
Data.u 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052
Data.u 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063
Data.u 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074
Data.u 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085
Data.u 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096
Data.u 1097, 1098, 1099, 1100, 1101, 1102, 1103
EndDataSection
If LoadXML(0, "dada.xml", #PB_Ascii)
If XMLStatus(0) = #PB_XML_Success
*Dict = XMLNodeFromPath(MainXMLNode(0), "vira/russo")
s$ = GetXMLNodeText(*Dict)
ToCP1251(@s$)
Debug s$
Else
Debug XMLError(0)
EndIf
Else
Debug "Фигвам!"
EndIf