2019-11-25 18:54:27 +03:00
|
|
|
package cpd
|
|
|
|
|
|
|
|
//UTF-32LE
|
|
|
|
|
2019-12-21 16:48:59 +03:00
|
|
|
//вторые 2 байта практически всегда 0
|
|
|
|
//используемый признак не сработает если больше половины текста будет набрано символами с 4 значащими байтами, не представляю, что это за текст...
|
2020-01-27 17:19:24 +03:00
|
|
|
func matchUTF32le(d []byte, tbl *cpTable) MatchRes {
|
2020-01-03 19:14:54 +03:00
|
|
|
zerroCounts := 0
|
2019-11-25 18:54:27 +03:00
|
|
|
for i := 0; i < len(d)-4; i += 4 {
|
2019-12-21 16:48:59 +03:00
|
|
|
if (int(d[i+2]) + int(d[i+3])) == 0 {
|
|
|
|
zerroCounts++
|
2019-11-25 18:54:27 +03:00
|
|
|
}
|
2019-12-21 16:48:59 +03:00
|
|
|
}
|
|
|
|
if zerroCounts*2 < len(d)/4 { //количество байтов в файле UTF-32 со значением 0 должно быть больше половины
|
2020-01-03 19:14:54 +03:00
|
|
|
return MatchRes{0, 0}
|
2019-11-25 18:54:27 +03:00
|
|
|
}
|
2020-01-03 19:14:54 +03:00
|
|
|
return MatchRes{zerroCounts, 0}
|
2019-11-25 18:54:27 +03:00
|
|
|
}
|