Gewusst wie: behandeln von Sonderzeichen in json-string
Habe ich eine app wo ich speichern Benutzer eingegebenen text in einen json-string. Ich habe dann speichern, dass json-string in eine Datei. Und dann später auf dem display es zurück durch das Lesen der Datei, extrahiert die json-string aus, und schließlich bekommen die Zeichenfolge, die angezeigt wird in ein textview. Ich bin jedoch zu bemerken, dass keine Sonderzeichen(nicht Symbole) wie ł, ÷, € usw werden nicht angezeigt. Zum Beispiel das symbol € wird angezeigt als â
.
Einige Beispiel-code unten für Referenz
Zuerst der code für die Erfassung von Benutzer eingegebenen text und legt es in eine Datei
//get user entered text
QuestionEditText = (EditText)this.findViewById(R.id.editTextQuestion);
//put that into json object
JSONObject jObjOneQuestionDetails=new JSONObject();
jObjOneQuestionDetails.put("Question", QuestionEditText.getText());
//write json object into file
FileOutputStream output = openFileOutput("MyFileName",MODE_PRIVATE);
OutputStreamWriter writer = new OutputStreamWriter(output);
writer.writejObjOneQuestionDetails.put());
writer.flush();
writer.close();
Nun unten der code für die Zeichenfolge wieder aus der Datei und zeigt die Benutzer
//define and initialize variables
QuestionEditText = (EditText)this.findViewById(R.id.editTextQuestion);
private JSONArray jArrayQuizQuestions=new JSONArray();
private JSONObject jObjQuizTitle=new JSONObject();
//load JSONObject with the File
int ch;
StringBuffer fileContent = new StringBuffer("");
FileInputStream fis;
String fileString;
fis = this.getBaseContext().openFileInput("MyFileName");
while( (ch = fis.read()) != -1)
fileContent.append((char)ch);
fileString = new String(fileContent);
jObjQuizTitle = new JSONObject(fileString);
jArrayQuizQuestions = jObjQuizTitle.getJSONArray("MyFileName");
//display json object into textview
JSONObject aQues = jArrayQuizQuestions.getJSONObject(pageNumber-1);
String quesValue = aQues.getString("Question");
QuestionEditText.setText(quesValue.toCharArray(), 0, quesValue.length());
Den code oben ist nur ein Beispiel, ich habe ignoriert try/catch-Blöcke hier. Diese geben sollte eine Vorstellung darüber, wie ich bin, Erfassung und Anzeige der vom Benutzer eingegebenen text.
- Vielleicht ein problem mit deinem char-Codierung. Was macht der code Aussehen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie "UTF-8" für die Verwendung dieser Art von speziellen Charakter. Für details Lesen Sie http://developer.android.com/reference/java/nio/charset/Charset.html
Müssen Sie Kodieren, die für Ihre erwarteten Charakter, wie dieser Weg :
Können Sie überprüfen, ähnliche Frage zu diesem Thema von hier :
Android: Analysieren von Sonderzeichen (ä,ö,ü) in JSON