質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

2回答

1197閲覧

Android Studioにて問題文中の漢字が文字化けしてしまう。

shou_hitotose

総合スコア66

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2019/01/28 18:34

編集2019/01/29 02:08

現在クイズアプリをAndroid Studioにて作成いたしました。スコアの表示や正解・不正解の判断などは一応できており全く問題ない状態です。ところが、問題文に問題がありましていざクイズアプリを起動させてやってみると問題文の中の一部の漢字が簡体字として表示されてしまいます。例としては「误」や「层」など。どのようにプログラムを変えたらよいのかご教授いただければ幸いです。

Java

1package com.example.quiz1application; 2 3import android.content.DialogInterface; 4import android.content.Intent; 5import android.graphics.Color; 6import android.os.Bundle; 7import android.support.v7.app.AlertDialog; 8import android.support.v7.app.AppCompatActivity; 9import android.view.View; 10import android.widget.Button; 11import android.widget.TextView; 12 13import java.util.ArrayList; 14import java.util.Collections; 15import java.util.Random; 16 17 18public class MainActivity extends AppCompatActivity { 19 20 private TextView countLabel; 21 private TextView questionLabel; 22 private Button answerBtn1; 23 private Button answerBtn2; 24 private Button answerBtn3; 25 private Button answerBtn4; 26 private String rightAnswer; 27 private int rightAnswerCount=0; 28 private int quizNumber=1; 29 static final private int QUIZ_COUNT = 10; 30 31 ArrayList<ArrayList<String>> quizArray = new ArrayList<>(); 32 33 String quizData[][] = { 34 {"1本の光ファイバーで波長が異なる複数の光信号の多重化によって広帯域伝送システムを可能にする技術は?","WDM","FDM","SONET","SDH"}, 35 {"CD-ROMなど蓄積型メディアが対象の1.5Mbit/sec程度の圧縮方式は?","MPEG-1","MPEG-2","MPEG-3","MPEG-4"}, 36 {"エンドシステム間の会話を構成し、同期とデータ交換を管理する層は?","セッション層","ネットワーク層","物理層","データリンク層"}, 37 {"インターネット、LAN上で動画、音声などを含むコンテンツを送受信するためITU-Tが勧告する規格は?","H.323","MPEG","PCM","MIDI"}, 38 {"IPv4のIPパケットに含まれるのは?","生存時間(TTL)","シーケンス番号","あて先MACアドレス","あて先ポート番号"}, 39 {"ネットワーク機器の接続状況を調べるためのコマンドpingが用いるプロトコルは?","ICMP","DHCP","TCP","SMTP"}, 40 {"インターネットVPN実現化のために用いる技術で、ESPやAHなどのプロトコルを含むのは?","IPsec","PPAP","SSL","MPLS"}, 41 {"IP電話の音質を表す指標のうちノイズ、エコー、遅延から算出されるのは?","R値","MOS値","パケット損失率","聴力"}, 42 {"Gigabit Ethernet規格の一つで伝送媒体に光ファイバーを利用した規格で、IEEE 802.3zの一部として規定されている規格は?","1000BASE-LX","CSMA/CD","100BASE-T","100BASE-TX"}, 43 {"スイッチングハブ(レイヤ2スイッチ)が、スイッチングを行うために使用するアドレス情報は?","MAC","DQN","IP","DTE"}, 44 {"複数のブリッジ間で情報を交換し合い、ループ発生の検出や障害発生時の迂回ルートを決定するのは?","スパニングツリー接続","アドレステーブル管理機器","アドレスフィルタリング","MACシェイク" }, 45 {"異なるアクセスポイントのエリアに端末が移動してもそのまま通信が継続できるような機能は?","無線LANローミング","SSID","Wifi","無線LANのアクセス制御方式"}, 46 {"無線LAN(IEEE802.11b)で使用されるデータ暗号化方式は?","WEP","SSL","SSID","TOEIC"}, 47 {"受信確認をメッセージ単位で行わず複数のメッセージを連続して送信する方法で受信確認を待たず送信できる最大メッセージ数は?","ウインドウサイズ","チャンネル数","レイヤ数","セルサイズ"}, 48 {"データを固定長のブロック(セル)に分割し、各セルにあて先情報を含むヘッダを付加させ種々のデータを統一的に扱う交換機は?","ATM交換機","フレームリレー交換機","物々交換機","パケット交換長"}, 49 {"パリティ専用の磁気ディスク装置をもち、ブロック単位のストライピングを行うRAIDの方式は?","RAID4","RAID3","RAID1","RAID-X"}, 50 {"磁気テープ装置などの補助記憶装置を通常のLANと別の高速専用ネットワークで構成する方式は?","SAN","NAS","DAS","DAFS"}, 51 {"フレーム内のデータ誤りの検出のためにフレームの最後に置かれるのは?","FCS","NIC","PPP","SQL"}, 52 {"無線LANで使用される搬送波感知多重アクセス/衝突回避方式は?","CSMA/CA","CDMA","CSMA/CD","FDMA"}, 53 {"PPPのリンク確立後チャレンジメッセージを繰り返し送れ、相手がハッシュ関数による計算で出た値を返信することで認証するプロトコルは?","CHAP","PAP","PPTP","ARP"}, 54 {"コンピュータとスイッチングハブの間、又は2台のスイッチングハブ間を接続する複数の物理回線を論理的に1本にまとめる技術は?","リングアグリゲーション","ブリッジ","スパニングツリー","マルチホーミング"}, 55 {"L2FとPPTPを統合して改良したデータリンク層のトンガリプロトコルは?","L2TP","PPP","SSL","IPsec"}, 56 {"識別子(ラベル)を挿入し、IPアドレスに依存しないルーティングを実現するラベルスイッチング方式を用いたパケット転送技術は?","MPLS","LSR","CDM","WiMAX"}, 57 {"PPPデータフレームをIPパケットでカプセル化しインターネットを通過させるトンネリングプロトコルは?","PPTP","LSP","NIC","FDDI"}, 58 {"高速無線通信で使われる多重化方式で、データ信号を複数のサブキャリアに分割し、各サブキャリアが互いに干渉しないよう配置する方式は?","OFDM","CDM","CCK","TDL"}, 59 {"IPアドレスからMACアドレスを得るためのプロトコルは?","ARP","RARP","DNS","PEG"}, 60 {"電力線を通信回線として利用する技術は?","PLC","DBM","ADSL","TDM"}, 61 {"IP電話実現のため一般の電話サービスが持つ基本的な呼制御機能のほか着信課金機能、転送機能、発信者番号通知機能などを実現する装置は?","SIPサーバー","ゲートキーパ","IPsecゲートウェイ","SNMPマネージャー"}, 62 {"2点間で仮想的に専用の経路を確立し、データを送受信するための通信プロトコルは?","PPP","DHCP","Zigbee","Bluetooth"}, 63 {"同一のLANに接続された複数のルータを仮想的に1台のルータとみて冗長構成を実現するプロトコルは?","VRRP","RSTP","DHCP","OSPF"}, 64 {"コンピュータネットワーク基礎で最も出席した人が少なかった時何人しかいなかったでしょう?","21人","30人","50人","3人"}, 65 {"ネットワークを単位(エリア)に分割しエリア間をバックボーンで結び、回線速度等を考慮した最小コストルーティングのプロトコルは?","OSPF","BGP","RIP","EIGRP"}, 66 {"UDPを使用するプロトコルは?","DHCP","HTTP","FTP","SMTP"}, 67 {"階層化したプロトコルの階層数は?","レイヤ数","フラグシーケンス","無理数","フロア"}, 68 {"IPネットワークの管理用プロトコルは?","ICMP","DHCP","HTTP","SMTP"}, 69 {"数Mbit/sec~数10Mbit/secという広い範囲の圧縮方式、蓄積メディア、放送、通信で共通利用可の汎用方式は?","MPEG-2","MPEG-3","MPEG-Xr","MPEG-1"}, 70 {"帯域4KHzの音声信号を8ビットでデジタル符号化し伝送する場合、標本化定理に従うと最低限必要とされる伝達速度は何Kbit/secか","64","32","8","16"}, 71 {"周波数の違いで情報を区別するアナログ通信回線で使う周波数分割多重技術は?","FDM","VLAN","SONET","SDH"}, 72 {"ジャック・ドーシーらが設立し世界中の陰キャたちに希望を与えたといわれるSNSサービスは?","Twitter","Amazon","Facebook","メルカリ"}, 73 {"OSI基本参照モデルにおいてデータの表現方法を通信に適した形にする層は?","プレゼンテーション層","アプリケーション層","データリンク層","トランスポート層"}, 74 {"電源装置や外部インタフェースなどをサーバで共有、省スペース化を実現したサーバシステムは?","ブレード型サーバ","デスクトップ型サーバ","タワー型サーバ","コンパクトサーバ"}, 75 {"ネットワーク管理用プロトコルは?","SNMP","SMAP","ICMP","HTTP"}, 76 77 }; 78 79 @Override 80 protected void onCreate(Bundle savedInstanceState) { 81 super.onCreate(savedInstanceState); 82 setContentView(R.layout.activity_main); 83 84 countLabel = findViewById(R.id.countLabel); 85 questionLabel = findViewById(R.id.questionLabel); 86 answerBtn1 = findViewById(R.id.answerBtn1); 87 answerBtn2 = findViewById(R.id.answerBtn2); 88 answerBtn3 = findViewById(R.id.answerBtn3); 89 answerBtn4 = findViewById(R.id.answerBtn4); 90 91 TextView txt=(TextView)findViewById(R.id.countLabel); 92 txt.setTextColor(Color.RED); 93 94 TextView txt2=(TextView)findViewById(R.id.questionLabel); 95 txt2.setTextColor(Color.BLACK); 96 97 for (int i = 0; i < quizData.length; i++) { 98 99 100 ArrayList<String> tmpArray = new ArrayList<>(); 101 102 tmpArray.add(quizData[i][0]); // 問題 103 tmpArray.add(quizData[i][1]); // 正解 104 tmpArray.add(quizData[i][2]); // 選択肢1 105 tmpArray.add(quizData[i][3]); // 選択肢2 106 tmpArray.add(quizData[i][4]); // 選択肢3 107 108 quizArray.add(tmpArray); 109 } 110 111 showNextQuiz(); 112 113 } 114 115 public void showNextQuiz() { 116 // クイズカウントラベルを更新 117 countLabel.setText("Q" + quizNumber); 118 119 // ランダムな数字を取得 120 Random random = new Random(); 121 int randomNum = random.nextInt(quizArray.size()); 122 123 ArrayList<String> quiz = quizArray.get(randomNum); 124 125 questionLabel.setText(quiz.get(0)); 126 127 rightAnswer = quiz.get(1); 128 129 quiz.remove(0); 130 131 Collections.shuffle(quiz); 132 133 answerBtn1.setText(quiz.get(0)); 134 answerBtn2.setText(quiz.get(1)); 135 answerBtn3.setText(quiz.get(2)); 136 answerBtn4.setText(quiz.get(3)); 137 138 quizArray.remove(randomNum); 139 } 140 141 public void checkAnswer(View view) { 142 143 Button answerBtn = findViewById(view.getId()); 144 String btnText = answerBtn.getText().toString(); 145 146 String alertTitle; 147 if (btnText.equals(rightAnswer)) { 148 alertTitle = "正解です! お見事!"; 149 rightAnswerCount++; 150 } else { 151 alertTitle = "不正解..."; 152 } 153 154 AlertDialog.Builder builder = new AlertDialog.Builder(this); 155 builder.setTitle(alertTitle); 156 builder.setMessage("答え : " + rightAnswer); 157 builder.setPositiveButton("Next", new DialogInterface.OnClickListener() { 158 @Override 159 public void onClick(DialogInterface dialogInterface, int i) { 160 if (quizNumber == QUIZ_COUNT) { 161 162 Intent intent = new Intent(getApplicationContext(), ResultActivity.class); 163 intent.putExtra("RIGHT_ANSWER_COUNT", rightAnswerCount); 164 startActivity(intent); 165 166 } else { 167 quizNumber++; 168 showNextQuiz(); 169 } 170 } 171 }); 172 builder.setCancelable(false); 173 builder.show(); 174 } 175 176} 177

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/01/29 00:34

簡体字と限定されていますが根拠は何でしょうか
shou_hitotose

2019/01/29 01:38

根拠も何も・・・簡体字だからです。
m.ts10806

2019/01/29 01:39

見ないとなんとも言えませんがそれを「文字化け」と表現しないのはなぜか?ということですけどね。
shou_hitotose

2019/01/29 01:39

エミュレータを起動して問題文を見たらなんか違和感あるなと思ってみたら簡体字だったということです。
shou_hitotose

2019/01/29 01:41

ああそういうことですか。すみません。たしかに「文字化け」でしたが日本漢字が簡体字になってしまうというほうがわかりやすいかなと思いまして・・・。
m.ts10806

2019/01/29 01:42

画面キャプチャなりなんなり視認可能な情報を提示してください。 簡体字はきちんと意味があって意図して書くものであり、意図して書いたものでなければどのような文字も「文字化け」です。自身で意味を込めて書いたわけではないですよね? それを「簡体字」と限定していては問題の本質から離れてしまいますよ。
shou_hitotose

2019/01/29 01:50

すみません。「文字化け」で合っています・・・
m.ts10806

2019/01/29 01:55

細かいようで申し訳ないですが表現を「簡体字」ではなく「文字化け」に修正していただけますか?
shou_hitotose

2019/01/29 02:08

あ、すみません。承知いたしました。
guest

回答2

0

ベストアンサー

エミュレータの言語設定はどうなっているでしょうか.
英語のみの場合, 漢字の(フォントの?)扱いがテキトウ(?)になるようです.
日本語にしてみては如何でしょう.

投稿2019/01/29 07:57

編集2019/01/29 09:44
jimbe

総合スコア12545

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

状況からすると昔からよくある現象ではないかと思われます。

対策としては文字化けしている実際の文字の直前でエスケープストリングを入れてやることですね。
同環境が手元にないため確認できませんが、試してみてください。

投稿2019/01/29 01:54

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shou_hitotose

2019/01/29 01:57

回答ありがとうございます!少しエスケープストリングを試してみたいと思います!
m.ts10806

2019/01/29 01:58

ただ、全部UTF8なのであれば提示の5C問題はおきそうにないですが・・。 あくまで可能性のひとつとして参考にしてください。
shou_hitotose

2019/01/29 02:22

残念ながらUTF8になっていました。それ文字化けといってもまったく違う漢字が表示されるわけでなく「誤り」が「误り」とかになっていたりします。まあそんなに数は多くないのですが・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問