Существует несколько возможностей.
Во-первых, что вы подразумеваете под "многобайтовым символом"?Вы имеете в виду UTF8 или систему ISO DBCS?
Если вы посмотрите на определение UTF8 и UTF16, есть возможность выполнить высокооптимизированное преобразование, вырвав биты «x» и переформатировав их.См. Например http://www.faqs.org/rfcs/rfc2044.html говорит о UTF8 <==> UTF32.Настроить UTF16 было бы просто.
Второй вариант - полностью работать в UTF16.Визуализируйте свою веб-страницу (или UI Dialog или что-то еще) в UTF16 и получите ввод данных пользователем таким образом.
Если все остальное не удается, существуют другие строковые алгоритмы, чем Aho-Corasick.Возможно, ищите алгоритм, который работает с вашей исходной кодировкой.
[Добавлено 29 января 2010 г.] Подробнее о преобразованиях см. http://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt, включая две реализации на C для mbtowc () и wctomb ().,Они предназначены для работы с произвольно большими wchar_ts.Если у вас просто есть 16-битный wchar_ts, вы можете упростить его.
Это будет намного быстрее, чем общие (чувствительные к кодовым страницам) версии в стандартной библиотеке.