• 締切済み

「~」が文字化けします

RED HAT+Apache2.0+Tomcat5+MySQL4.0を使っているのですが、 サーブレットからデータベースへの登録時に文字化けをして困っています。 「~」が「訓」という文字になってしまいます。 また、「表示」や「可能」などの5C関連は、問題ありません。 MySQLのデフォルトのエンコードはujisにしてあり、ターミナルからの SQL直打ち(ターミナルは送受信ともEUC設定)では、「~」はきちんと登録されます。 JSP・サーブレット内での遷移(入力フォーム⇒確認画面での表示など)では EUCで「~」のまま遷移して出力されているのですが、 どこを設定すればいいか、心当たりのある方いらっしゃいますか。 よろしくお願いします。

  • MySQL
  • 回答数1
  • ありがとう数22

みんなの回答

noname#227796
noname#227796
回答No.1

「~」は化けます。(文字コードにもよるのですが) JDBC関連の文字化けの話は非常に有名な問題なので、下記サイトなどを参考にして対策してみてはいかがでしょう。 http://www.dmz.hitachi-sk.co.jp/Java/Tech/i18n/unicode.html http://diary.hatena.ne.jp/m-hashimoto/20031211#p3 http://www.google.com/search?num=50&hl=ja&lr=lang_ja&q=%95%b6%8e%9a%89%bb%82%af+JDBC+mysql 結局の所、自分で対策を施すしかないんですけどね。

Goody-goody
質問者

お礼

ありがとうございます。 5/31にサイトオープンし、バタバタしていてお礼をかけませんでした。申し訳ありません。 結局、マイナスや全角ハイフンに変換してとりあえずしのいでいますので、上記も参考にして修正していきたいと思います。 他にも参考サイト(Linux)を知っていましたら教えてください。

関連するQ&A

  • Fedora7+PHP+MySQLで文字化け

    すみません、表題にてPHP側でCSVファイルをINSERTで登録していますが、どうしても文字化けしてしまいます。 Fedoracore7 PHP5.2.2 MySQL5.0.37 phpMyAdmin2.11.0 <php.ini> mbstring.internal_encodein = EUC-JP mb・・・output = EUC-JP <my.cnf> [client]、[mysqldump]、[mysql]ともに default-character-set = ujis [mysqld] default-character-set = ujis skip-character-set-client-handshake init-connect = SET NAMES ujis 色々と調べてEUC-JP(ujis)で統一してるつもりなのですが・・・ phpmyadminでは文字化けは解消してまして、こちらでレコードを登録すると、PHP側では文字化けなしで表示されます。 PHP側での書き込みは、 mb_convert_encoding($val,"EUC-JP","SJIS") で行っていますが、文字化けが解消されません。 どなたかご教授頂ければと思い、質問させて頂きました。 宜しくお願いします。

    • 締切済み
    • PHP
  • MySQLの文字化け

    WindowsServerでPHPとMySQLで作成したプログラムを動かしています。 PHPからINSERTでMySQLに登録すると環境依存文字(「(株)・(有)など)が「?」になってしまいます。 PHPからSELECTでブラウザ上に表示させると文字化けはしていませんが、phpMyAdminで確認すると「?」になっています。 このデータベースの内容を他のサーバーに移すときに、phpMyAdminからエクスポートまたはmysqldumpすると「?」のままエクスポートして、他のサーバーでインポートしても当然「?」になってしまいます。 環境依存文字が文字化けしない、あるいは他のサーバーでも環境依存文字をそのまま移行できるようにはできないでしょうか。 よろしくお願いします。 PHPはEUC-JP、データベースはujisで作成しています。 INSERTの直前でSET NAMES UJISを実行しています。

    • ベストアンサー
    • MySQL
  • MySQLへ登録する際の文字コード

    以下の様な場合には、データベース上では 何の文字コードで登録されているのでしょうか? (1)WEB画面上はEUCで入力 (2)(1)で入力した情報をMySQLに登録する。  この際、MySQL環境では文字コードがujisで設定されている。

    • ベストアンサー
    • MySQL
  • 文字化けが解消できません…MySQL5.2.1

    OS:WINDOWS XP MySQL5.2.1 Apache2.2.4 php-5.2.1 文字(EUC-JP使用) PHPからテーブルにINSERTした場合、echoできちんと表示できます。 しかし、コマンドプロンプトを開いてテーブルを見ると、 PHPからINSERTした日本語が文字化けしています。 コマンドプロンプトにINSERTで日本語を入力すると、 Query OK と表示されますが、SELECT * FROM で内容を表示すると、 空白で何も表示されません(PHPのechoでも表示されません) 色々調べてみたのですが…どうしても解決できません… 【my.ini】 [client] port=3306 default-character-set=ujis [mysql] default-character-set=ujis [mysqld] port=3306 basedir="c:/mysql5/" datadir="c:/mysql5/data/" default-character-set=ujis init-connect="SET NAMES ujis" skip-character-set-client-handshake [mysqldump] default-character-set = ujis 【SHOW VARIABLES で確認した文字コード】 character_set_client ujis character_set_connectioon ujis character_set_database ujis character_set_filesystem binary character_set_results ujis character_set_server ujis character_set_system utf8 試しに mysql> SET NAMES ujis と入力したりしてみましたが 文字化けしたままになっております。 SHOW CREATE DATABASE と SHOW CREATE TABLE で表示された CHARACTER SETは ujis でした。 my.iniの character-set を ujis に設定した場合、 日本を表示させることはできないのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • phpでmysqlのデータを表示すると文字化けしてしまう

    はじめまして、PHPでMySQLのデータを表示すると文字化けしてしまいます。先日までちゃんと表示されていたのですが、MYSQLのバージョンを4から5にUPDATEしたのがいけなかったのかな!? EUC-JPで表示したいのですが、ブラウザの「文字のエンコード」をunicodeに設定するとちゃんと表示される状況です。 MySQLにstatusコマンドを入力すると mysql> status -------------- mysql Ver 14.12 Distrib 5.0.38, for pc-linux-gnu (i686) using readline 5.1 Connection id: 553 Current database: Current user: root@localhost SSL: Not in use Current pager: /usr/bin/less Using outfile: '' Using delimiter: ; Server version: 5.0.38-log Gentoo Linux mysql-5.0.38 Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: ujis Db characterset: ujis Client characterset: ujis Conn. characterset: ujis UNIX socket: /var/run/mysqld/mysqld.sock Uptime: 2 days 15 hours 10 min 7 sec Threads: 1 Questions: 666830 Slow queries: 263 Opens: 30042 Flush tables: 1 Open tables: 6144 Queries per second avg: 2.932 -------------- のように表示されEUCで設定されているように見えます。 phpの情報は下記のように設定されています。 PHP Version 5.1.6-pl6-gentoo default_charset EUC-JP Content-Type text/html; charset=EUC-JP SQLite Encoding UTF-8 原因がわからず、困っています。 なにか引っかかることでもあれば教えてください。 よろしくお願いいたします。

  • mysqldumpでの文字化けに関して教えてください。

    WindowsXPにMySQL4.1.15-nt,Apache2.0.55,PHP5.05をインストールしてプログラムを作りました。 MySQLのインストール先: C:\Program Files\MySQL\MySQL Server 4.1 MySQLにはEUCでデータが格納されています。mysqldumpで同一のWindowsXPへダンプしたところそのファイルを開くと文字化けしていました。以下を試しましたが解決しませんでした。 (1) shell> mysqldump -u userneme -p database > c:\backup.sql 秀丸で開くとUTF-8で開かれEUCで読み直しても解決しませんでした。 (2) shell> mysqldump default-character-set=ujis -u userneme -p database > c:\backup.sql 秀丸で開くとShift_JISで開かれEUCで読み直しても解決しませんでした。 (3)mysql.iniに末尾に下記を追加しましたが、解決できませんでした。 [mysqldump] default-character-set=ujis 将来的にはレンタルサーバー上で利用したいと思いPHPからMySQLへの格納をEUCにしました。 ダンプが文字化けをして大変困っています。なにか手がかりでもご教授いただければと思っています。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • htmlで文字化け

    こんにちは。 ローカル環境でjspを導入したものの、 htmlで入力したリクエストからjspに渡す際の htmlファイルが文字化けしてしまいます。 (jspでは問題なく表示・処理されます) 通常では普通に見れるのですが、 shift-jis等ファイルに入れても変わらず、です。 tomcat側の設定で何か要るのでしょうか。 お願いします。

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

    こんにちは。 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
  • mysql文字化けについて

    どうしても自己解決できません。宜しくお願いします。 sqliteで色々できるようになり、いざmysqlに移行と思いデータを mysqlに移そうとしています。ところが日本語がデータベース内で文字化けしています。 sqliteでは文字コードを変えると大丈夫だったのですが。 $simei=mb_convert_encoding($_POST[simei],"EUC-JP","SJIS"); musqlには「照合順序」というのがあり、よく意味が分からないのですがこれが文字コードを設定するところと思い、そこで「ujis_japanese_ci」と言うのに設定してみたり、sjisにしてみたり色々試したのですがやはりデータベース内では文字化けしています。 どのようにすればデータベース内に保存された日本語文字が文字化けしないで保存されるのでしょうか。宜しくご指導お願いいたします。

    • ベストアンサー
    • PHP
  • php,mysqlでの文字化け(機種依存文字)について

    機種依存文字「○いち」「(株)」の文字化けがどうしても解消できません。 phpソースに機種依存文字をコーディングした場合には正しく表示されますが、外部より入力した文字をMySQLに格納し、phpにてデータを取り出し表示すると文字化けします(phpmyadminでの表示時点で文字化け)。 「mb_convert_encoding」等にてテストしてみましたが、結果は変わりませんでした。また、phpmyadminにて直接MySQLに入力しても、phpmyadminでもブラウザ(php表示)でも文字化けしてしまいます。 文字コードについて知識が浅く、各環境はデフォルト状態です。 「mbstring.internal_encoding = EUC-JP 」にも関わらず、「character_set_client = utf8」「character_set_results = utf8」としているのに、機種依存文字以外は問題無く表示されております。 1.機種依存文字化けの対応方法 2.正しい環境設定方法(文字コードの統一を行うべき等) ご教授のほど、何卒宜しくお願い致します。 <<環境>> ・windows xp ・UNIX socket 4.1.22 ・phpMyAdmin - 2.11.1 ・Mysql 4.1.21 ・PHP 4.4.7 【Mysql】 character_set_client = utf8 character_set_connection = utf8 character_set_database = utf8 character_set_results = utf8 character_set_server = ujis character_set_system = utf8 【my.cnf】 [client] default-character-set = ujis [mysqld] default-character-set = ujis [mysqldump] default-character-set = ujis 【php.ini】 mbstring.language = Japanese mbstring.encoding_translation = On mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.internal_encoding = EUC-JP mbstring.detect_order = auto mbstring.substitute_character = none; ※phpソースには「charset=euc-jp」を記載

    • 締切済み
    • PHP