- ベストアンサー
Servletの文字化けについて
Servletでブラウザから(1)や(1)などの文字をPostして 処理を行いたいのですが、"?"に変換されてしまします。 ユニコードに変換しなくてはならないまでは、わかったのですが SHIFT_JISから変換がうまく行きません。 このあたりの処理をアドバイスをお願いします。
- furaibou_max
- お礼率0% (0/1)
- Java
- 回答数1
- ありがとう数0
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
(1)はマル付き数字でしょうか。 マル付き数字など、JISにはないがUnicodeにはある文字を扱うときには、エンコーディング名に"MS932"や"Windows-31J"を使います。 private String SJIStoUnicode(String sjis) { if(sjis == null) { return ""; } String unicode; try { unicode = new String(sjis.getBytes("ISO-8859-1"), "Windows-31J"); } catch(java.io.UnsupportedEncodingException e) { e.printStackTrace(); return ""; } return unicode; }
関連するQ&A
- EclipseでのJSP・Servlet開発について(文字化け)
EclipseでJSP、Servletの開発をしております。 文字化けについての質問なのですが、ブラウザ上で表示される文字が 文字化けしてしまいます。JSPの頭に <%@page contentType="text/html; charset=SHIFT_JIS"%> と入れており、ブラウザでもエンコードはShift_JISとなっています。 自分なりに原因を調べたのですが、○○.jsp→○○_jsp.javaに変換?する際に 文字化けしているようで、Eclipse上でJSP、Servletを見ると普通なのですが、 ○○_jsp.javaは見事に文字化けしていました。 文字化けした○○_jsp.javaを削除して再度表示(_jsp.javaの再作成)も試みた のですが、同じ結果でした。 1ヶ月以上触っていないパッケージのソースも突然文字化けを起こしたので 原因も分からない状態です。 原因・直し方がお分かりの方、是非ともご指南下さい。 情報不足でしたら追記させて頂きますので、どうぞ宜しくお願い致します。
- ベストアンサー
- Java
- メディアのフォーマットによる文字の認識
メディアのフォーマットによって異なる文字が同じ文字として認識されることがあったようですが、その理由は何でしょうか。 1、OSが大文字と小文字を混同する。 2、シフトJISの持つ根本的な問題。 3、JISコードとシフトJISコードの変換テーブルによる問題。 4、UnicodeとシフトJISの変換テーブルによる問題。 この中に正解はありますでしょうか?
- ベストアンサー
- Mac
- 文字化けについて教えてください。
Mysql5.0.51で文字セットをShift_JIS(sjis)で運用しておりますが、 特定の漢字を入力すると、”荔”などと変換されて記録されます。 Web上で利用する場合はブラウザがもとの漢字に変換してくれているようですが、 pdfで表示する際には、”荔”と表示されてしまいます。 これを回避したいのですが、私は何を勉強すればよいでしょうか?
- 締切済み
- MySQL
- Unicodeで編集できるテキストエディタってありますか?
これまで「Unicode対応」を謳ったエディタの多くは 「Unicodeテキストの読み書きが出来る」エディタに過ぎませんでした。 つまりファイルを読み込むときにUnicode→シフトJISに変換し、編集は シフトJIS環境で行う……という。 保存も同様でシフトJIS→Unicode変換したのち保存します。 これだと確かにUnicodeテキストの読み書きは出来ますが、 Unicode最大に特徴であるJIS外文字のが入っているとシフトJIS変換時に 「?」になってしまいます。 編集もUnicode環境で行えて、Unicodeフォントを指定してやればJIS外文字も 表示できる、そんなフリーエディタってありませんか? 最近の「秀丸」で出来るようになったのは知ってるんですが……
- ベストアンサー
- フリーウェア・フリーソフト
- 海外テンプレートを使い日本語を入れると文字化け
海外のテンプレート(index.html css ファイル)を使い、htmlに書いてあるサンプルの文字(欧文)を日本語に置き換えて、webブラウザーで見ると文字化けします。 この時 webブラウザーのテキストエンコーディングのデフォルトを、shift jisに変えると、きちんと表示します。 デフォルト(ユニコード)でちゃんと表示するためにはどうしたらよいのでしょうか? ちなみにhtmlはメモを使って開いてます。 mac win両方で確認。 よろしくアドバイスお願いします
- ベストアンサー
- ホームページ作成ソフト
- 文字化けします
またまた質問で申し訳ないんですが、よろしくお願いします。 Servletで表示させる文字が化けます。 ServletのdoGet()を呼び出しています。 ServletをURLにて直接呼び出しているので、doGetで間違いないと思います。記述としては、 response.setContentType(text/html;charset=Shift_JIS); と記述しています。 過去の質問等も調べて、byteに変換してJISAutoDetectを指定しても直りませんでした。 str = new String(str.getBytes("iso-8859-1"), "JISAutoDetect")としました。 8859-1も、同様に駄目でした。 そして、tomcatを起動した時に出るDos窓に 「Unsuported encoding: Shift_JIS」 と出ているのですが、tomcat3-1-4ではサポートされてないのでしょうか?? なんとか、解決策ってないでしょうか? 教えてください。よろしくお願いします。
- 締切済み
- Java
- Shift_jis設定しているのに文字化けする
HTML初心者です。よろしくお願いします。 環境は、Windows7、ezhtmlというHTMLエディタを使って制作しています。 FFFTPにて、ホームページをアップしています。 下記の内容を書いてあります。 <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>わたしのホームページ</title> </head> エディタで作業して、プレビューしても文字化けはしていませんが、 Webにアップして、IE8のブラウザで見ると、文字化けしてしまいます。 他のPCで見ても同じ現象がおきました。 「わたしのホームページ」という言葉は文字化け状態になり、 ブラウザの表示→エンコード→Unicode(UTF8)になっているので、 それを日本語(シフトJIS)になおすと、正しく表示されます。 何が原因で、設定したシフトJISが有効にならないのでしょうか。 よろしくお願いします。
- 締切済み
- HTML
- Ajax+Servletで文字化け
Ajax+Servletで"I"、"II"等が文字化けしてしまいます。 以下のようにajaxを使いserver側のservletへアクセスしています。 xmlhttp = this.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Msxml2.XMLHTTP"); //コールバック関数の登録 xmlhttp.onreadystatechange = display; xmlhttp.open('POST','Test',true); xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlhttp.send(null); フトントの画面はJSPで <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"> で定義しています。 サーブレットはpostgresのDBから項目を取得し、htmlを返却しています。 返却したhtmlをDOMのinnterHTMLを使い、画面を書き換えています。 response.setContentType("text/html; charset=Windows-31J"); servletからhtmlを返却する際、上記のようにWindows-31Jで返却すると、javascriptで"xmlhttp.responseText"の所で "ランタイムエラーが発生しました。デバックしますか 行107 c00ce56eの為、操作を完了できませんでした。" とエラーが出てしまいます。 response.setContentType("text/html; charset=shift-jis"); 出力する際、上記のようにShift-jisで返却すると、エラーは発生しないのですが、"I"、"II"等が文字化けしてしまいます。 何か解決策ありますでしょうか。 宜しくお願いします。
- ベストアンサー
- AJAX
補足
自分の投稿も文字化けしていました。ご指摘のように「マル1」だったのですが アドバイスいただいたようにgetParameter時に設定を行ってみたのですが やはり変わり無い状態のままでした。 HTMLのCHARSET=Shift_JISに設定してあるのですがなにか関連は有るのでしょうか? OSはWINDOWS NT4.0 を使用しています。