Вы можете сначала отключить встроенное промежуточное программное обеспечение ASP.NET, которое выдает это HTTPException
, а затем добавит ваш собственный ASP.NET или ASP.NET Core , которое обрабатывает проверку пути запроса для опасных символов и выполняет настраиваемое действие (например, бросание другого исключения, перенаправление на собственный URL-адрес ошибки и т. Д.).
Это не единственный способ, если вы хотите самостоятельно реализовать счетчик графем, но он сложный, и вы должны обратиться к https://unicode.org спецификациям, чтобы все было правильно.
thai_str
- это не строка UTF-8, а строка Unicode, содержащая кодовые точки Unicode. Существуют разные категории кодовых точек. Две категории необходимы для подсчета позиций символов:
Lo
Other_Letter , другие буквы, включая слоги и иероглифы; Mn
Nonspacing_Mark , непространственный комбинирующий знак ( нулевая ширина продвижения ). Если вы пропустите подсчет категории кодовых точек Nonspacing_Mark (Mn
), вы примерно увидите, что делает библиотека графем:
import unicodedata as ud
thai_str = 'สีโชคดีเป็นสีชมพู สีโชคร้ายเป็นสีเหลืองและขาว'
for cp in thai_str:
print(f'{cp}\t{ud.category(cp)}\t{ud.name(cp)}')
print(sum(1 for cp in thai_str if ud.category(cp)[0] != 'M'))
Вывод:
ส Lo THAI CHARACTER SO SUA
ี Mn THAI CHARACTER SARA II
โ Lo THAI CHARACTER SARA O
ช Lo THAI CHARACTER CHO CHANG
ค Lo THAI CHARACTER KHO KHWAI
ด Lo THAI CHARACTER DO DEK
ี Mn THAI CHARACTER SARA II
เ Lo THAI CHARACTER SARA E
ป Lo THAI CHARACTER PO PLA
็ Mn THAI CHARACTER MAITAIKHU
...
ว Lo THAI CHARACTER WO WAEN
35