POSTフォームデータをUTF-8で送信する

I have a form in which the user enters his name in Chinese, but when I do

String strName = request.getParameter("name");

I get strName as some meaningless characters. As a solution I tried

request.setCharacterEncoding("UTF-8");

before reading any parameters from the request object. This worked. What I want to know is how do I achieve this in HTML/javascript . I have tried the

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

but this doesn't work . Any help?

3

3 答え

In pure HTML you should need <form enctype="multipart/form-data" accept-charset="UTF-8"> set to submit utf-8 in the browser.

0
追加された
データがUTF-8として送信されるため、文書自体のエンコーディングがUTF-8の場合は必要ありません。また、サーバーサイドコードがUTF-8としてデータを処理することを必ずしも確認する必要はありません。
追加された 著者 Jukka K. Korpela,

クライアント側はデータの送信方法に影響を与えます。サーバー側で問題が読み込み中だったため、データ UTF-8でエンコードされて送信されたようです。したがって、 meta を追加しても(OKでも)これには影響しません。

0
追加された

It should work if you define the charset in the Content-Type request header. I believe it is usually not defined by default. For example if you use jQuery to make the request you have to add "charset=utf-8" to the contentType option: http://api.jquery.com/jQuery.ajax/

Webブラウザがすべてのリクエストに対してContent-Typeを送信するように強制する方法はないので、常に setCharacterEncoding を呼び出す方が良いでしょう。

0
追加された