• 締切済み

Windows-31JとShift_JISはどちらが良いですか?

今後JavaServletを開発する上でJavaのサーバがUNIX、クライアントがWindowsの場合、Charsetは、Windows-31JとShift_JISのどちらが良いのでしょうか?

  • Java
  • 回答数1
  • ありがとう数3

みんなの回答

  • covachan
  • ベストアンサー率38% (46/120)
回答No.1

Windows-31Jが正解です。 Sjift_JIS規格ではNEC、IBM特殊文字や一部の文字が対応されていないために、新たにマッピングされたのがWindows-31J(CP932)です。たとえば「~、-」などがコンバートの段階で文字化けしてしまいます。 しかし、JDK1.4.1以降はShift_JISでも対応するようになっているようです。 この辺については風間一洋さんの資料、本が参考になると思います。 私は1.4.1は使用する機会がないため確認はしていないのですが・・・

関連するQ&A

  • shift_jisとutf-8

    お世話になります。 先日より文字コードのことで、頭を悩ましています。 サイト制作の時に、フルCSSを目指し、他の人が作っていたCSSを利用してDreamweaverで制作を始めました。 その際、文字コードがutf-8になっていたのですが、ブラウザによっては文字化けしていおり、宣言の部分をshift_jisに変更しました。 この部分です。<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> ちなみにDreamwerverではデフォルトの文字コードはshift_jisなので、わざわざ変更しない限り、制作したページはすべてshift_jisで書かれているようです。 また、使わせてもらったCSSのページには一行目に@charset "utf-8";が入っていたのですが、よくわからないのでこの行をはずしてみたところ、CSSの設定が反映されない部分が出てきました。(これが原因かわかりませんが、この一行を入れると直ったみたいで・・) そこで質問なのですが、HTMLの方ではshift_jis、CSSファイルではutf-8という設定でも別にかまわないのでしょうか?(統一しなくてもいいのか?) また、一行目の@charset "utf-8";を省くと問題がありますか? 統一した方がいい場合は、制作したものをすべてutf-8に(またはshift_jisに)するにはどうしたらいいのでしょうか? 別に統一する必要がなければ今回はこのままにして、次回からきちんとしたものを作って行きたいのですが・・ どうぞよろしくお願い致します。

  • JIS、SHIFT-JIS、EUCはなぜできた?

    教えてください。 文字コードについて調べています。アルファベットはASCIIコードで統一されているために、特に問題がなく、日本語にも JISコードという標準化されているコードがあります。 なので、基本的にはこれをみんなが使えば、文字化けなどという問題には悩まされなくてすむはず。 なのに、なぜ Windows では Shift-JISなどという独特な文字コードを使い、UNIX系では EUCコードを使っているのでしょう。いったい、どの文字コードが一番初めにできて、なぜそれで標準化を図ることができなかったのかなど、日本語文字コードに関する歴史について、ご存知の方、ぜひ教えていただければ幸いです。

  • Shift_JISコードでファイルを生成する方法

    いつもお世話になります。 環境サーバLinax、クライアントWindows2000、IE6でプログラミングしています。 JSPで、FileWriterを使用してCSVファイルを生成しているのですが、EUC-JPコードで記録されてしまい、リンクを張ってもクライアントにダウンロードしたCSVファイルは文字化けしてしまいます。 new String(strVal.getBytes("8859_1"),"Shift_JIS") と変換して書き出しても文字化けが起こるばかりでどうしようも無いです。 どうすればShift_JISでファイルを生成できるのか、またはShift_JISでファイルをダウンロードする方法を教えてもらえないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • Dreamweaverで「shift_jis」→「utf-8」

    DreamweaverMX2004を使用しています。 以前に文字コードをshift_jisで作ったhtmlを全てutf-8に変更したいと思っています。 これを行う場合、Dreamweaverのコードビュー画面で <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> ↓ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> と直接手で書き換えるだけで、文字コードはDreamweaverが自動的に保存しなおしてくれるのでしょうか? (もしくはメニューの「ページプロパティ」でエンコーディングを変更できるようですが、どちらの方法にしても) また、これをDreamweaverではなく、テキストエディタ(TeraPad等)で行う場合、どのような方法になりますでしょうか。 また、UTF-8でhtmlを作成する際、shift_jisとは別の点で何か注意しなければならないことはありますか? よろしくお願い致します。

  • サーブレットの文字化け

    こんにちは。 JAVAサーブレット時の文字化けで困っています。 環境 ≪サーバー≫ OS:Linux Tomcat4.1.31 JAVA1.4.2 ≪クライアント≫ OS:Windows2000 クライアントからhttp:192.168.X.X:8080/xxx.jspを呼び出して実行しています。 JSPファイル(Shift-JISで保存)からサーブレットを呼び出して サーブレットでrequest.getParameterをした時に、日本語が文字化けしてしまいます。 JSPファイルでは <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J"%> を指定しています。 なにかわかりましたら教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Shift_jisで表記され、文字化けしてしまうんです。

    VineLinuxに以下のものをインストールしました。 apache_1.3.34(bison-2.1、flex-2.5.4) php-4.4.1 mysql apacheを起動させ、phpの起動を確認(phpinfoで確認)したあと、 とりあえずhtdocsでテストしようと思って、 テスト的にhtmlを作ってブラウザでアクセスしたら、 以下のような現象が発生しました。 ・jisでエンコードすると、日本語表示される。 ・Shift_jis、EUCでエンコードすると文字化け。 ・html上のmetaタグで、charset=Shift_JIS入れてもだめ。 ちょっと行き詰ってます。 何か気になる部分があれば教えてください。 また、解決する上で必要な情報があったらゼヒご指摘ください。 よろしくお願いします。

  • Shift_JISデータでPOSTしたいです。

    はじめまして。 よろしくお願いします。 言語はPHPを使用しております。 今回の質問なのですが、UTF-8で作成したページよりデータをShift_JISとしてPOSTしたいと考えております。 いろいろGOOGLEで検索し出てきたのですがどれもダメでした。 <!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>テストサイト</title> </head> <body> <form action="http://hoge.com" method="post" accept-charset="Shift_JIS"> <? $namec = mb_convert_encoding(mb_convert_kana($name, "S"), "SJIS", "UTF-8")); ?> <input type="hidden" name="bill_name" value="<?= $namec; ?>"> <input type="submit" value="お支払いへ" onclick="org=document.charset; document.charset='Shift-JIS'; document.UserForm.submit(); document.charset=org;"> </form> </body> </html> 上記のようなフォームを作成しています。 http://warumono.at.webry.info/201110/article_9.htmlを参考にやってみたのですがダメでした。 単純にmb_convert_encodingでは相手のサイトで認識してくれず、上記フォームでやっても認識してくれませんでした。 ブラウザはChromでやっています。 もちろんサイトを運営する上でfirefox IE safariは必須かと考えております。 どうぞ知恵を貸していただければと思いますのでよろしくお願い致します。

    • ベストアンサー
    • PHP
  • "Content-type:text/html;charset=shift_JIS\n\n" がテキスト表示されてしまう。

    CGIで print "Content-type:text/html;charset=shift_JIS\n\n"; を出力すると その文字列がそのままブラウザにテキスト表示され、その後ろの操作、 例えば、 print "Status: 301 Move Permanent\n"; print "Location: http://localhost/file/data-1.lzh\n\n"; も、単純に文字列として表示されてしまいます。 ところが、print "Content-type:text/html;charset=shift_JIS\n\n"; の行を削除すると、 もともとの目的の動作(上記の例ではファイルのダウンロード画面ポップアップ)になります。 このように、print "Content-type:text/html;charset=shift_JIS\n\n";を書かなくて済む (あるいは書かない方が良い場合)というのは、なぜでしょうか。 サーバによっては動作が変わるのでしょうか。 ※そのCGI内で、print "Content-type:text/html;charset=shift_JIS\n\n"; を2行書いてあるというようなことはありません。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • shift-jisからutf8に変換

    解決に至らなかったので再度お尋ねします。 CGIのコードを見てくださいますか。 http://hotpegasus.bov.jp/mail.txt (必要な部分だけ表示しておりますので、そのままアップしても機能はしません) 改修した箇所は以下のです。 <meta http-equiv="Content-Type" content="text/html;charset=shift_jis"> &jcode'h2z_sjis(*contenido) &jcode'convert(*subject,'sjis'); &jcode'convert(*infor,'sjis'); &jcode'convert(*contenido,'jis'); &jcode'convert(*res_msg,'jis'); print "Content-type: text/html;charset=shift_jis\n\n"; ↓ sjis関連をutf8に書き換え、jcodeの頭文字をJに書き換え <meta http-equiv="Content-Type" content="text/html;charset=utf8"> &Jcode'h2z_utf8(*contenido) &Jcode'convert(*subject,'utf8'); &Jcode'convert(*infor,'utf8'); &Jcode'convert(*contenido,'utf8'); &Jcode'convert(*res_msg,'utf8'); print "Content-type: text/html;charset=shift_utf8\n\n"; require 'jcode.pl'をuse Jcode;に書き換え ※jcode::" となっている箇所はありません 結果 メールフォームはエラーや文字化けは出なくて成功しましたが、メール受信の際、ThunderbirdPortableメーラーでは全て文字化け(文字エンコーディングは「日本語ISO-2022jp」となっています)、ウェブメールのgmailでは内容は文字化けになっていませんが、タイトルが文字化けになっています。 どこが悪かったのでしょうか? 宜しくお願いします。

    • 締切済み
    • CGI
  • 【Ajax】SHIFT-JISの文字化け 

    AjaxのSHIFT-JIS文字化けで悩んでいます。 下記コードです。※prototype.js使用※ <html> <head> <meta http-equiv="content-type" content="text/html;charset=Shift_JIS"> <title>Sample</title> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"><!-- function loadHTMLFile(fName) { new Ajax.Request(fName, { method: "get", onComplete: displayData }); } function displayData(httpObj){ alert(httpObj); $("result").innerHTML =httpObj.responseText; } // --></script> </head> <body> <h1>サーバー上のHTMLファイルを読み込む</h1> <form> <input type="button" value="●●.htmlファイルを読み込み" onClick="loadHTMLFile('●●.html')"> </form> <div id="result"></div> </body> </html> ●●.htmlおよび、このコードを記述しているファイルのエンコードは "SHIFT-JIS"です。 ●●.htmlのエンコードを"UTF-8"にするとうまく表示できます。 "SHIFT-JIS"同士のやり取りの方法を教えて頂きたく思います。 宜しくお願い致します。 ※サーバはwindow用XAMPを自分のローカルに使用しています。  アパッチの設定はいじっていません。

専門家に質問してみよう