ステップ 1: まず、独自のコードの基本構成を確認します
1. Jdbc.properties データベース構成ファイルの背後以下の図に示すように、characterEncoding=utf-8 を追加しましたか:
そこにないことに気付いた場合は、ただ見るだけでなく、すぐに追加してください。
2.web .xml は次のようにエンコード フィルターで構成されていますか
# そうでない場合は、自分で判断できます。ご都合のよい場合は、それをコピーして以下に書いてください (そうですか? 非常に配慮されています)
<!-- 配置编码过滤器 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter>
ステップ 2: 上記 2 つのファイルに問題がないことがわかったら、この設定ファイルを見てみましょう。
1. データベースのエンコード形式を確認します
まずサーバーにログインし、データベースを入力して、データベース コマンドにログインします (以下のデータベース名は名前を指します)作成したデータベースの名前 (test など):
mysql - u root -p データベース名
次に、次のコマンドを実行してデータベースのエンコード形式を確認します
‘char%’;
問題を引き起こしているのはこの latin1 です。この問題を解決するにはどうすればよいでしょうか?
2. mysql 内部設定ファイルを変更する
最初に言っておきますが、最新のダウンロードされた公式 mysql インストール パッケージには my.ini がないようです。ファイルですが、my.ini ファイル. cnf ファイルが必要です。この時点では、サーバーにアクセスしてファイルがどこにあるかを確認する必要があります。もちろん、通常はルート ディレクトリの etc/ の下にあります。
コマンドライン: vim my.cnf
[Core] i コマンドを実行して編集モードに入り、[mysqlid] の下に次の文を追加します。また、中国語の文字エンコード形式には互換性があります。
character-set-server=utf8
: wq コマンドは保存して終了します。
3. mysql を再起動すると完了です
これら 2 つの実装をルート ディレクトリの bin で実行して停止および開始しました
systemctl stop mysqld.service systemctl start mysqld.service
それから、誇らしげに mysql にログインし、上記のコマンドを実行してデータベースのエンコード形式を確認できます。
show variables like ‘char%';
これは驚くべきことではなく、予想外ではないでしょうか、はははは。
結局、たゆまぬ努力の末、中国のデータを入力することができました。はははは、自分に送金したいと心から納得しました。疑問符はそのままにします。
#問題解決
mysql に格納された漢字が疑問符になるプロジェクト シナリオmySql 5.7java設定ファイル: spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useSSL=false挿入操作:@Insert("INSERT INTO foods(food_name,food_taste,food_price,food_description) VALUES (#{foodName},#{foodTaste},#{foodPrice},#{foodDescription})") int insert(Food food);
spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useUnicode=true&characterEncoding=UTF-8&useSSL=false
をソースに追加します。
以上がmysqlに中国語データを挿入するとクエスチョンマークになる問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。