FastCGI и Unicode - PullRequest
       6

FastCGI и Unicode

1 голос
/ 01 марта 2011

Мне интересно, поддерживает ли Fastcgi такие функции Юникода, как wprintf. Я получаю буфер через fread и получаю char *, в котором есть символы Юникода. Я имею в виду байты со значением выше 128. Как мне обработать их внутри основной функции fastcgi. Вызов mbstowcs не удается.

Я имел в виду, что использую библиотеку FastCGI Developers Kit. Java-клиент отправляет данные в кодировке UTF-8, я расшифровал его на стороне сервера, используя функции mbstring в php, но что является эквивалентом этого gcc. Что бы это ни было, похоже, не работает внутри функции FastCGI amin. Я посмотрел на Fascgipp, но я не знаю, насколько он используется и насколько он стабилен. Кроме того, я не считаю, что тащение огромной библиотеки, такой как boost, оправдано для небольшой утилиты.

Ответы [ 4 ]

3 голосов
/ 01 марта 2011

Если вам нужен Unicode, используйте UTF-8, а не "широкие" символы.Они гораздо больше подходят для Интернета.

2 голосов
/ 01 марта 2011

Fastcgi - это протокол, а не API. Так что это зависит от библиотеки, которую вы выбираете. Да смотри библиотеку http://www.nongnu.org/fastcgipp/

0 голосов
/ 05 декабря 2011

FastCGI ожидает поток байтов, поэтому ваша самая безопасная ставка - UTF-8.При этом программа должна работать с вводом не-UTF-8;iconv идеально подходит для этого.

Вы можете использовать wprintf, но только в форме wsnprintf, после чего содержимое буфера преобразуется в UTF-8, а затем записывается в правильный поток FCGI.

0 голосов
/ 01 марта 2011

Я получаю буфер через fread и получаю char *, в котором есть символы Юникода. Я имею в виду байты со значением выше 128.

Unicode - не единственная кодировка с байтами выше 128. Фактически, большинство других кодировок делают. Вам необходимо выяснить, какая именно кодировка используется в вашем веб-приложении. В любом случае, я не думаю, что wprintf будет вам полезен.

...