Func _DOS2WIN($String)
Local $sResult = "", $iCode
Local $Var866Arr = StringSplit($String, "")
For $i = 1 To $Var866Arr[0]
$iCode = Asc($Var866Arr[$i])
Select
Case $iCode >= 128 And $iCode <= 175
$Var866Arr[$i] = Chr ($iCode + 64)
Case $iCode >= 224 And $iCode <= 239
$Var866Arr[$i] = Chr ($iCode + 16)
Case $iCode = 240
$Var866Arr[$i] = Chr (168)
Case $iCode = 241
$Var866Arr[$i] = Chr (184)
Case $iCode = 252
$Var866Arr[$i] = Chr (185)
EndSelect
$sResult &= $Var866Arr[$i]
Next
Return $sResult
EndFunc ; ==> _DOS2WIN
Func _KOI2WIN($String)
Local $sResult = "", $iCode
Local $VarKOIArr = StringSplit($String, "")
For $i = 1 To $VarKOIArr[0]
$iCode = Asc($VarKOIArr[$i])
Select
Case $iCode = 63
$VarKOIArr[$i] = Chr (185)
Case $iCode = 163
$VarKOIArr[$i] = Chr (184)
Case $iCode = 179
$VarKOIArr[$i] = Chr (168)
Case $iCode >= 233 And $iCode <= 240
$VarKOIArr[$i] = Chr ($iCode - 33)
Case $iCode >= 242 And $iCode <= 245
$VarKOIArr[$i] = Chr ($iCode - 34)
Case $iCode >= 201 And $iCode <= 208
$VarKOIArr[$i] = Chr ($iCode + 31)
Case $iCode >= 210 And $iCode <= 213
$VarKOIArr[$i] = Chr ($iCode + 30)
Case $iCode >= 225 And $iCode <= 226
$VarKOIArr[$i] = Chr ($iCode - 33)
Case $iCode >= 228 And $iCode <= 229
$VarKOIArr[$i] = Chr ($iCode - 32)
Case $iCode >= 193 And $iCode <= 194
$VarKOIArr[$i] = Chr ($iCode + 31)
Case $iCode = 247
$VarKOIArr[$i] = Chr (194)
Case $iCode = 231
$VarKOIArr[$i] = Chr (195)
Case $iCode = 246
$VarKOIArr[$i] = Chr (198)
Case $iCode = 250
$VarKOIArr[$i] = Chr (199)
Case $iCode = 230
$VarKOIArr[$i] = Chr (212)
Case $iCode = 232
$VarKOIArr[$i] = Chr (213)
Case $iCode = 227
$VarKOIArr[$i] = Chr (214)
Case $iCode = 254
$VarKOIArr[$i] = Chr (215)
Case $iCode = 251
$VarKOIArr[$i] = Chr (216)
Case $iCode = 253
$VarKOIArr[$i] = Chr (217)
Case $iCode = 255
$VarKOIArr[$i] = Chr (218)
Case $iCode = 249
$VarKOIArr[$i] = Chr (219)
Case $iCode = 248
$VarKOIArr[$i] = Chr (220)
Case $iCode = 252
$VarKOIArr[$i] = Chr (221)
Case $iCode = 224
$VarKOIArr[$i] = Chr (222)
Case $iCode = 241
$VarKOIArr[$i] = Chr (223)
Case $iCode = 215
$VarKOIArr[$i] = Chr (226)
Case $iCode = 199
$VarKOIArr[$i] = Chr (227)
Case $iCode = 196
$VarKOIArr[$i] = Chr (228)
Case $iCode = 197
$VarKOIArr[$i] = Chr (229)
Case $iCode = 214
$VarKOIArr[$i] = Chr (230)
Case $iCode = 218
$VarKOIArr[$i] = Chr (231)
Case $iCode = 198
$VarKOIArr[$i] = Chr (244)
Case $iCode = 200
$VarKOIArr[$i] = Chr (245)
Case $iCode = 195
$VarKOIArr[$i] = Chr (246)
Case $iCode = 222
$VarKOIArr[$i] = Chr (247)
Case $iCode = 219
$VarKOIArr[$i] = Chr (248)
Case $iCode = 221
$VarKOIArr[$i] = Chr (249)
Case $iCode = 223
$VarKOIArr[$i] = Chr (250)
Case $iCode = 217
$VarKOIArr[$i] = Chr (251)
Case $iCode = 216
$VarKOIArr[$i] = Chr (252)
Case $iCode = 220
$VarKOIArr[$i] = Chr (253)
Case $iCode = 192
$VarKOIArr[$i] = Chr (254)
Case $iCode = 209
$VarKOIArr[$i] = Chr (255)
EndSelect
$sResult &= $VarKOIArr[$i]
Next
Return $sResult
EndFunc ; _KOI2WIN
ConsoleWrite (_WhatIsEncoding ("мой дядя самых честных правил когда не в шутку занемог он уважать себя заставил и лучше выдумать не мог") & @CRLF)
ConsoleWrite (_WhatIsEncoding ("¬Rc ¤п¤п б ¬ле з_бв-ле Їа ўЁ< ЄR_¤ -_ ў игвЄг -_¬R_ R- гў ¦ вм б_Ўп бв ўЁ< Ё <гзи_ ўл¤г¬ вм -_ ¬R_") & @CRLF)
ConsoleWrite (_WhatIsEncoding ("НПК ДСДС УБНЩИ ЮЕУФОЩИ РТБЧЙМ ЛПЗДБ ОЕ Ч ЫХФЛХ ЪБОЕНПЗ ПО ХЧБЦБФШ УЕВС ЪБУФБЧЙМ Й МХЮЫЕ ЧЩДХНБФШ ОЕ НПЗ") & @CRLF)
ConsoleWrite (_WhatIsEncoding ("ЬЮЩ ФпФп бРЬле зХбвЭле ЯаРТШЫ ЪЮУФР ЭХ Т игвЪг ЧРЭХЬЮУ ЮЭ гТРЦРвм бХСп ЧРбвРТШЫ Ш ЫгзиХ ТлФгЬРвм ЭХ ЬЮУ") & @CRLF)
Func _WhatIsEncoding ($String)
Local $iCode, $wincount = 0, $doscount = 0, $koicount = 0, $isocount = 0
Local $VarString = StringSplit($String, "")
For $i = 1 To $VarString[0]
$iCode = Asc($VarString[$i])
Select
Case $iCode = 192 Or $iCode = 224 Or $iCode = 200 Or $iCode = 232 Or $iCode = 206 Or $iCode = 238 Or $iCode = 210 Or $iCode = 242
$wincount +=1
Case $iCode = 128 Or $iCode = 160 Or $iCode = 136 Or $iCode = 168 Or $iCode = 142 Or $iCode = 174 Or $iCode = 146
$doscount +=1
Case $iCode = 225 Or $iCode = 193 Or $iCode = 233 Or $iCode = 201 Or $iCode = 239 Or $iCode = 207 Or $iCode = 244 Or $iCode = 212
$koicount +=1
Case $iCode = 176 Or $iCode = 208 Or $iCode = 184 Or $iCode = 216 Or $iCode = 190 Or $iCode = 222 Or $iCode = 194
$isocount +=1
Case $iCode = 226
$doscount +=1
$isocount +=1
EndSelect
Next
If $wincount > $koicount And $wincount > $doscount And $wincount > $isocount Then
Return "win"
ElseIf $doscount > $koicount And $doscount > $wincount And $doscount > $isocount Then
Return "dos"
ElseIf $koicount > $wincount And $koicount > $doscount And $koicount > $isocount Then
Return "koi"
ElseIf $isocount > $wincount And $isocount > $doscount And $isocount > $koicount Then
Return "iso"
Else
Return False
EndIf
EndFunc ; ==> _WhatIsEncoding
Func _ISO2WIN ($String)
Local $sResult = "", $iCode
Local $VarISOArr = StringSplit($String, "")
For $i = 1 to $VarISOArr[0]
$iCode = Asc($VarISOArr[$i])
Select
Case $iCode >= 176 And $iCode <= 239
$VarISOArr[$i] = Chr ($iCode + 16)
Case $iCode = 161
$VarISOArr[$i] = Chr (168)
Case $iCode = 241
$VarISOArr[$i] = Chr (184)
Case $iCode = 240
$VarISOArr[$i] = Chr (185)
EndSelect
$sResult &= $VarISOArr[$i]
Next
Return $sResult
EndFunc ; ==> _ISO2WIN
Func _UTF2WIN ($String)
Local $sResult = "", $iCode
Local $VarUTFArr = StringSplit($String, "")
For $i = 1 to $VarUTFArr[0]
$iCode = AscW($VarUTFArr[$i])
Select
Case $iCode >=1040 And $iCode <= 1103
$VarUTFArr[$i] = Chr ($iCode - 848)
Case $iCode = 1025
$VarUTFArr[$i] = Chr (168)
Case $iCode = 1105
$VarUTFArr[$i] = Chr (184)
Case $iCode = 8470
$VarUTFArr[$i] = Chr (185)
EndSelect
$sResult &= $VarUTFArr[$i]
Next
Return $sResult
EndFunc ; ==> _UTF2WIN