Dockerはターミナルで中国語を入力できない問題を解決します

Dockerはターミナルで中国語を入力できない問題を解決します

序文:

ある日、DockerでMySQLサービスを構築したところ、MySQLのコマンドラインで中国語の文字が入力できないことに気付きました。中国語の文字も?に置き換えられていました。最初はMySQLの文字セットの問題だと思いました。確認しても問題は解決しませんでした。コンテナターミナルを終了して、中国語の文字も入力できないことに気付きました。システムの文字セットに問題があると推測しました。解決プロセスは次のように記録されています。

解決前:

# コンテナに入り、文字セットを表示します [root@master2 ~]# docker exec -it b18f56aa1e15 /bin/bash
root@b18f56aa1e15:/# ロケール
言語=
言語=
LC_CTYPE = "POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
# コンテナでサポートされている文字セットを表示します root@b18f56aa1e15:/# locale -a
C
C.UTF-8
POSIX

中国語の文字を入力できません: システムは POSIX 文字セットを使用していますが、これは中国語の文字をサポートしていません。一方、C.UTF-8 は中国語の文字をサポートしています。この問題は、システムの環境 LANG を「C.UTF-8」形式に変更することで解決できます。

中国語を入力するには、次のようにコンテナに入るだけです: docker exec -it b18f56aa1e15 env LANG=C.UTF-8 /bin/bash

[root@master2 ~]# docker exec -it b18f56aa1e15 env LANG=C.UTF-8 /bin/bash
root@b18f56aa1e15:/# こんにちはroot@b18f56aa1e15:/# mysql -uroot -p
パスワードを入力してください: 
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは80です
サーバーバージョン: 5.7.17-log MySQL コミュニティサーバー (GPL)

Copyright (c) 2000, 2016, Oracle およびその関連会社。無断複写・転載を禁じます。

OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。

ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。

mysql> こんにちは

知らせ:

この変更は一時的なものです。変更を永続的にするには、コンテナを作成するときに Dockerfile で設定する必要があります。
この方法は、K8s でポッドに入るときに中国語の文字を入力できないという問題も解決できます。

以上が、ターミナルで中国語の文字を入力できない問題を Docker がどのように解決するかの詳細です。Docker が中国語の文字を入力できない問題を解決する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Docker での環境変数の使用とよくある問題の解決策
  • Docker がポート 2375 を公開し、サーバー攻撃を引き起こす問題と解決策
  • DockerでJenkinsをインストールし、初期プラグインのインストール失敗の問題を解決する
  • Dockerコンテナが外部ネットワークにpingできない問題を解決する
  • Docker環境でJenkinsを設定すると、タスクをビルドするときにコンソールログに文字化けした中国語の文字が表示されます
  • docker ログが取得できない問題の解決方法
  • Ubuntu 19でdockerソースをインストールできない問題を共有する
  • Dockerに関するよくある質問

<<:  MySQL監視グループレプリケーションについて簡単に説明します

>>:  process.env.NODE_ENV 本番環境モードを設定する方法

推薦する

行の高さと垂直方向の配置に関する包括的な理解

前の単語line-height、font-size、vertical-align は、インライン要素...

CSS の Flex レイアウトを使用してシンプルな縦棒グラフを作成する方法

以下は、Flex レイアウトを使用した棒グラフです。 HTML: <div class=&qu...

CentOSはexpectを使用してスクリプトやコマンドをバッチでリモート実行します

サーバーへのファイルのアップロード、ソフトウェアのインストール、コマンドやスクリプトの実行、サービス...

フィールドを結合するSQL関数

最近、関連テーブル内のすべてのフィールドをクエリし、それらを 1 つのフィールドに再グループ化する必...

仕事でよく使うLinuxコマンドまとめ

仕事では、docker や kubernetes などのオープンソース ツールをさらに活用しましょう...

条件によるMysqlカウントの複数の実装方法を詳細に解説

最近、あるウェブサイトのバックエンドに一連の統計機能を追加していたのですが、条件によるカウントが必要...

W3C チュートリアル (11): W3C DOM アクティビティ

ドキュメント オブジェクト モデル (DOM) は、プログラムがドキュメントのコンテンツ、構造、およ...

CSS 属性値 clear:right が機能しない理由の詳細

clear プロパティを使用してフロートをクリアすることはよくあることであり、clear プロパティ...

サーバーの購入と初期構築方法

しばらくサーバーいじってなかったけど、やることがなくなったのでモバイルワークスに行って海外サーバーを...

CentOS 7 で MySQL 8 の複数のインスタンスを設定する詳細なチュートリアル (必要な数だけ設定できます)

原因最近、プロジェクトのリファクタリングを始めたのですが、マスタースレーブと読み取り書き込み分離を使...

ファイル書き込みを使用して Linux アプリケーションをデバッグする方法

Linux ではすべてがファイルなので、Android システム自体は Linux + Java だ...

IDEA は MySQL への接続時にエラーを報告します。サーバーが無効なタイムゾーンを返します。タブに移動して serverTimezone プロパティを設定してください。

これからの道は常に困難で、棘だらけです。歯を食いしばって、乗り越えられると信じてください。さあ、さあ...

HTML ベースタグ target=_parent の使用の紹介

<base> タグは、ページ上のすべてのリンクのデフォルトのアドレスまたはデフォルトのタ...

Vue 仮想 DOM クイックスタート

目次仮想DOM仮想DOMとは何か仮想DOMの役割Vue の仮想 DOM vノードvNodeとはvNo...