日期:2014-05-18  浏览次数:20675 次

jsf乱码 超难的问题 呵呵
为什么javascrip不能正常显示汉字,而页面上却能?

例如:
<f:view   locale= "zh ">
....
      function   postalopen(winName,features)   {
......
if(postcode== " "){
alert( ' <h:outputText   value= "#{msgs.alert} "/> );
return   false;
}

..........
}


<body>
              <h:outputText   value= "#{msgs.alert} "/>
</body>


....
</f:view>

------解决方案--------------------
如果是類似 &#8220;&#32080;&#36681;&#20316;&#24290;的亂碼

你的js里面if(postcode== " "){
alert( ' <h:outputText value= "#{msgs.alert} "/> );
return false;
}
請調用下面方法轉碼,把 ' <h:outputText value= "#{msgs.alert} "/> )‘傳入

//convert utf-8 to big5 or gb2312
function Unicode2Str(str){
var re=/&#[\da-fA-F]{1,5};/ig;
var arr=str.match(re);
if(arr==null)return( " ");
var size=arr.length;
var arr2=new Array(size);
for(var i=0;i <arr.length;i++){
arr2[i]=String.fromCharCode(arr[i].replace(/[&#;]/g, " "));
}
for(var i=0;i <arr.length;i++){
str=str.replace(arr[i],arr2[i]);
}
//return(arr.toString().replace(/,/g, " "))
return str;
}