Я понял, что в wxStyledTextCtrl, если комментарии пользователя содержат символы, отличные от ASCII, позиции, указанные WordStartPosition
и WordEndPosition
, неверны. Что такое хороший способ работы с символами, отличными от ASCII, в wxStyledTextCtrl? Как я могу идентифицировать символы, не являющиеся ASCII?wxStyledTextCtrl не символы ASCII
ответ
Возможно, вы уже ответили на этот вопрос, но в моих экспериментах WordStartPosition и WordEndPosition по-прежнему работают с символами, отличными от ASCII. Данные внутри элемента управления хранятся в формате UTF-8, и эти функции дают количество байтов в тех данных, где слово начинается и заканчивается. Если это не то, что происходит для вас, можете ли вы опубликовать образец, где они не работают?
Что касается определения того, какие символы и не ASCII, то вроде следующего, кажется, работает (при условии, является началом и Ь конечное положение):
wxString s = m_stc->GetTextRange(a,b);
for (wxString::const_iterator i = s.begin(); i != s.end(); ++i)
{
wxUniChar uni_ch = *i;
if(uni_ch.IsAscii())
{
//something
}
else
{
//something else
}
}
Одна вещь, которую я сделал уведомление что, если вы используете значение для a или b, которое попадает в середину одного из символов, отличных от ASCII, результирующая строка будет пустой. Надеюсь, это поможет, если вы еще не нашли решения.
Вы правы насчет 'WordStartPosition' и' WordEndPosition'. Однако, «GetTextRange» не работал для меня, когда в тексте был не-ASCII. «GetTextRangeRaw», казалось, лучший способ проверить не-ASCII, как если бы вы передали его в std :: cout, вы можете увидеть символы, отличные от ASCII. – macroland
- 1. Не отображаемые символы ASCII
- 2. Принимать символы не ASCII
- 3. ASCII-символы
- 4. wxStyledTextCtrl SetSelection
- 5. Не-ASCII-символы в Matplotlib
- 6. Не-ASCII-символы в C
- 7. Обратить строку, содержащую символы ASCII и символы, отличные от ASCII
- 8. Совпадение символы высокого ASCII
- 9. Какие символы ASCII устарели?
- 10. Символы ASCII для многоугольника
- 11. Request.Form содержит ASCII символы
- 12. php - символы эха ascii?
- 13. Снятие управления ASCII-символы
- 14. Невидимые символы - ASCII
- 15. MySQL заменяет символы ASCII
- 16. VBScript Не удалось отфильтровать символы не ASCII
- 17. ASCII символы R, МЕТОДИЧЕСКИЕ
- 18. wxStyledTextCtrl: Автозаполнение изображения отображается неправильно
- 19. Специальные символы для ASCII
- 20. wxStyledTextCtrl Завершение кода
- 21. Почему кодировка US-ASCII принимает не символы US-ASCII?
- 22. Изменить все символы не-ascii на ascii Bash Scripting
- 23. Совместимые символы ASCII и несовместимые символы
- 24. NetBeans не выводит некоторые символы ASCII
- 25. Удаление не-ASCII символы из текстового файла
- 26. Java HtmlCleaner: не обрабатывает расширенные символы ascii
- 27. Twig заменяет символы не-ascii объектами
- 28. Как печатать не-ASCII символы, как \ ихххх
- 29. Python Не-ASCII символы с кодировкой Объявлено
- 30. python 'ascii' codec не может кодировать символы
Я должен ответить на мой вопрос: хотя это может быть не лучший подход, одним из способов было бы проверить длины RawText, который является wxCharBuffer, а текст - wxString. wxCharBuffer включает дополнительные символы для размещения символов, отличных от ascii. – macroland