Не могу опубликовать китайские иероглифы в моей форме поиска - PullRequest
5 голосов
/ 22 февраля 2011

У меня проблемы с отправкой китайских иероглифов в форму поиска. Он отлично работает на локальном хосте, но не на моем сайте.

Вводимые данные поиска: 假发

Полученный URL на localhost: http://search.taobao.com/search?commend=all&isnew=2&q=%BC%D9%B7%A2&source=search1

Полученный URL на сайте: StackOverflow фактически кодирует его, результат кодирования другой, но дело в том, что на сайте вместо q =% BC% D9% B7% A2 я получаю q = 假发 в самом URL. http://search.taobao.com/search?commend=all&isnew=2&q=%E5%81%87%E5%8F%91&source=search1

Вы можете видеть, что он фактически вставляет китайские символы в запрос. Я понятия не имею, почему это работает по-разному на lcoahost и на живом сайте. Кодировка символов:

<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />

Но я также попробовал UTF-8, без изменений.

вот HTML-код моей формы. Поисковый запрос переходит ко второму полю ввода. Первый для transaltion, который отлично работает. Не уверен, в чем дело и нужно ли мне кодировать символы или нет и почему это работает на localhost ??? Заранее спасибо!

 <div class="search-box">
 <form id="search" name="search" action="http://search1.taobao.com/browse/search_auction.htm?at_topsearch=1" method="post" target="_blank">
 <div class="search-form">
 <span class="search-q">
 <input type="text" autocomplete="off" accesskey="s" name="q" id="q" value="Translate and Find" style="width: 160px; font-family: Arial;" size="20" />
 </span>
 <button id="DoSearch" type="submit" style="font-weight: bold; font-family:Arial; color: #333; width: 165px;">
 Taobao Search</button>
 </div>
 <input type="hidden" name="sort" value="" />
 <input type="hidden" name="at_topsearch" value="1" />
 <input type="hidden" name="f" value="D9_5_1" />
 <input type="hidden" name="promote" value="" />
 <input type="hidden" name="isnew" value="2" />
 <input type="hidden" name="atype" value="b" />
 <input type="hidden" name="commend" value="all" />
 <input type="hidden" name="search_type" value="auction" />
 <input type="hidden" name="user_action" value="initiative" />
 <input type="hidden" name="ssid" value="s1-e" />
 </form>
 </div>
</div>

1 Ответ

3 голосов
/ 22 февраля 2011

Добавьте accept-charset="GB18030" к вашему тегу формы. Я предполагаю, что ваш локальный сервер оставляет кодировку до формы (например, XAMPP делает это), а действующий сервер принудительно кодирует информацию.

Если это не сработает, и вы можете использовать PHP для принудительного кодирования представленной информации. Или, если у вас есть возможность изменить настройки сервера, вы можете изменить кодировку .... Но опция PHP в миллион раз проще.

...