Extの中国語の文字化けしの問題をどのように解決します
1つの方法を提供する:全局式UTF-8符号化の方式
1.jsに現れる中国語、例えばリストの名前など、jsファイルを単独で定義し、静的変数のような概念を定義し、その後、このファイルをトランスコードし、すなわち中国語名をunicode符号化にトランスコードする
例えばjsファイルtest.js:
必要な場所で引用できるmainTask.taskName
2.要求パラメータに中国語が含まれている場合はpostで提出する
ここでparamsObjは、json文字列ではなくjson objectまたはencoded URLである
params: { foo: 'bar' } OR params: 'foo=bar'
jsonオブジェクトまたはencoded URLをどのように形成しますか?
2.1.formフォームのコミットについて:
2.2 JSON文字列については、Ext.decode(jsonStr)でJSONオブジェクトに変換できます
途中にスラッシュ(パス情報)がある場合は、まずスラッシュをダブルスラッシュに置き換える必要があります.そうしないと、スラッシュは失われます.
1.jsに現れる中国語、例えばリストの名前など、jsファイルを単独で定義し、静的変数のような概念を定義し、その後、このファイルをトランスコードし、すなわち中国語名をunicode符号化にトランスコードする
例えばjsファイルtest.js:
var Resource = function () {
return {
init : function() {
this.mainTask.taskName=" ";
}
};
}();
必要な場所で引用できるmainTask.taskName
2.要求パラメータに中国語が含まれている場合はpostで提出する
_invoke: function(action, paramsObj, OnSuccess, scope) {
Ext.Ajax.timeout = 100000;
//The timeout in milliseconds to be used for requests,when out of it deduce the error
Ext.Ajax.request({
url:action,
method: 'post',
params:paramsObj,
scope: scope,
callback: function(options, success, response) {
var result = Ext.util.JSON.decode(response.responseText);
if (success) {
if (OnSuccess) {
OnSuccess.call(scope, result);
}
} else {
var msg = (result && result.Message) ? result.Message : 'Some error happend. Please try again';
Ext.MessageBox.alert('Error', msg);
}
}
});
}
ここでparamsObjは、json文字列ではなくjson objectまたはencoded URLである
params: { foo: 'bar' } OR params: 'foo=bar'
jsonオブジェクトまたはencoded URLをどのように形成しますか?
2.1.formフォームのコミットについて:
var paramsObj = Ext.lib.Ajax.serializeForm(Ext.getCmp('upgradeApplicationForm').getForm().getEl().dom);
2.2 JSON文字列については、Ext.decode(jsonStr)でJSONオブジェクトに変換できます
途中にスラッシュ(パス情報)がある場合は、まずスラッシュをダブルスラッシュに置き換える必要があります.そうしないと、スラッシュは失われます.
//replace the '\' to the '\\'
var myPat = /%5C/g; //this is using regular expression to define the escaped version of a backslash
fileNames = escape(fileNames);
fileNames = fileNames.replace(myPat,"%5C%5C");
fileNames = unescape(fileNames);
var jsonObj = Ext.decode(fileNames);