You need to sign in to do that
Don't have an account?
JavaScriptでコントローラからの値を呼び出した際の文字化け
お世話になります。
現在、Visualforceページ内のJavaScriptでXMLの文字列を作るという処理を作成しています。
処理の流としては
・コントローラでSQOLを実行
・その結果をXMLに追加する
です。
そこで、Visualforceページ内のJavaScriptの文字列でVisualforceの式(”{!hoge~}”)に
日本語が入ると文字化けしてしまいます。
Visualforceページ(抜粋)
<script>var xmlData = '<xmlData>';
<apex:repeat value="{!dbData}" var="db">
xmlData = xmlData + '<set name="{!db.field1__c}" ';
xmlData = xmlData + 'value="{!db.field2__c}" ';
xmlData = xmlData + '/>';
</apex:repeat>
xmlData = xmlData + '</xmlData>';
</script>
コントローラ
public class ExClass{
public List<Employee_Environment__c> dbData{get;set;};
public void getEx(){
dbData=[SELECT field1__c, field2__c, From Exmp__c ];
}
}
上記の{!db.field1__c}の部分に日本語の文字列が入ると文字化けしてしまいます。
(例:”〷〦𞅫ヿ・・・”)
どなたか解決策をご存知でしたら、ご教授お願いいたします。
返信ありがとうございます。
なろほど、HTML 数値文字参照でしたか。
以下の関数を作成することで解決できました。
ありがとうございます。
function Conv(text){
while(text.match(/&#([0-9]+?);/) ){
text = text.replace(/&#([0-9]+?);/, String.fromCharCode(RegExp.$1));
}
return text;
}
All Answers
> (例:”〷〦𞅫ヿ・・・”)
例に挙げて頂いた文字は文字化けではなく、HTMLの数値文字参照です。
詳細は以下のURLをご参照ください。
http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E5%8F%82%E7%85%A7
特に問題がないように思われますがいかがでしょうか??:smileysurprised:
<script> タグで囲んだ中ではHTML 数値文字参照がされません。
<script> タグの外はHTML 数値文字参照になります。
<apex:page showHeader="false" sidebar="false"> サンプル <script> サンプルHTML 数値文字参照 されない。 </script> </apex:page>
返信ありがとうございます。
なろほど、HTML 数値文字参照でしたか。
以下の関数を作成することで解決できました。
ありがとうございます。
function Conv(text){
while(text.match(/&#([0-9]+?);/) ){
text = text.replace(/&#([0-9]+?);/, String.fromCharCode(RegExp.$1));
}
return text;
}