そのままjavaのプロパティファイルからUNICODE文字を読んでください。たとえば、私が "Account.label.register"というキーを渡すと、 "\ u5BC4 \ u5B58 \ u5668"と返されますが、 "寄存器"のような文字表現は返されません。ここに私のサンプルの特性がプロパティファイルからユニコード文字を読み取るjava
file_ch.properties
Account.label.register = \u5BC4\u5B58\u5668
Account.label.login = \u767B\u5F55
Account.label.username = \u7528\u6237\u540D
Account.label.password = \u5BC6\u7801
ありがとうファイルです。
こんにちは、私は読んでい性質は、それがOK罰金、私は漢字を取得しています上記のアプローチを使用して、次のJavaコード
@Override
public ResourceBundle getTexts(String bundleName) {
ResourceBundle myResources = null;
try {
myResources = ResourceBundle.getBundle(bundleName, getLocale());
} catch (Exception e) {
myResources = ResourceBundle.getBundle(getDefaultBundleKey(), getLocale());
}
return myResources;
}
を使用してファイル。しかし、私のアプリケーションのいくつかのajaxリクエストでは、X-JSONヘッダーに中国語のテキストを渡す必要があります。サンプルコードは、Iは、例えば英語通過いSTR =そのまま「無効コード」X-JSONヘッダ情報を運んでいる
HashMap<String, List<String>> map = new HashMap<String, List<String>>();
List<String> errors = new ArrayList<String>();
errors.add(str); /*ex: str = "无效的代码" , value taken from properties file through resource bundle*/
map.put("ERROR", errors);
JSONObject json = JSONObject.fromObject(map);
response.setCharacterEncoding("UTF-8");
response.setHeader("X-JSON", json.toString());
response.setStatus(500);
以下に示します。 =「无效的代码」(中国語またはその他のテキスト)X-JSONヘッダは以下のような空のようにテキストを運んでstrがある場合しかし、私は
response :
connection:close
Content-Encoding:gzip
Content-Type:text/html;charset=UTF-8
Date:Wed, 08 Jun 2016 10:17:43 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-JSON:{"ERROR":["Invalid Code"]}
を取得しています応答がしかし、「エラー」は "が含まれている場合中国の」元のテキスト: "无效的代码"
応答:
connection:close
Content-Encoding:gzip
Content-Type:text/html;charset=UTF-8
Date:Wed, 08 Jun 2016 10:17:43 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked
Vary:Accept-Encoding
**X-JSON:{"ERROR":[" "]}** /*expecting the response X-JSON:{"ERROR":["无效的代码"]}*/
中国語テキストが空として来ている、私は
以下のようにX-JSONヘッダを介してUnicodeを送信すると考えるようその後は
var json;
try {
json = xhr.getResponseHeader('X-Json');
} catch (e) {
alert(e);
}
if (json) {
var data = eval('(' + json + ')');
decodeMsg(data);
}
function decodeMsg(message) {
var mssg = message;
var r = /\\u([\d\w]{4})/gi;
mssg = mssg.replace(r, function (match, grp) {
return String.fromCharCode(parseInt(grp, 16)); });
mssg = unescape(mssg);
return mssg;
}
以下のようにX-JSONヘッダを評価した後にJavaScriptコードを使用してUnicode文字を解析する提案をお願いします。ありがとうございました。
あなたがこれまでに試したことを示してください。 – AlexR
なぜユニコードをエスケープしますか? – Kayaman
ありがとうございました。プロパティーファイルからUnicode文字を読み込む必要性に関する詳細な説明を編集した記事をご覧ください。 –