[英]Java UTF-8 special characters to JavaScript
我有一個Java Web應用程序(Webwork),並且有一些.jsps文件,它們顯示一些可以是特殊(UTF-8)字符的數據。 例如:JérômeSerrano
.jsps包含正確的UTF-8標頭:
<%@ page pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %>
在我的jsp中,我包含了一個 ,它具有<%@ page pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %>
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
在.jsp中,我讀取數據如下:
<ww:property value="%{content.author}" />
我嘗試將字符串傳遞給JS,以便在頁面加載后執行其他操作(例如,當用戶單擊按鈕時調用另一個服務)
<script type="text/javascript" charset="utf-8">
var contentData = {};
contentData.author = "<ww:property value="%{content.author}" />";
alert(contentData.author);
</script>
那么,為什么在加載.jsp時可以正確呈現字符,但是一旦將它們傳遞給JS,它們就會壞了?
具有UTF-8字符集的外部JavaScript:
<script src="myscripts.js" charset="UTF-8"></script>
<script charset="UTF-8"></script>
嘗試使用代碼編輯器上的“使用編碼保存”選項來保存文件。 我知道Sublime Text具有此選項(文件->使用編碼保存)。
您可以嘗試不同的編碼。 UTF-8或ISO-8859-1。
這個想法是,您必須使用與標頭(元)相同的編碼來保存文件。
經過一整夜的調試和努力之后,這是我的解決方案:-而不是將Java中的值直接寫入JavaScript變量中,例如:
<script charset="UTF-8">
var myName = "<ww:property value="name" />";
alert(">>" + myName);
</script>
在這種情況下,char編碼無法正常工作。
我將Java值寫入隱藏的輸入中 。 這也具有自動轉義字符的好處,例如:'(撇號),“(引號)等...
<input id="name_in" type="hidden" value="<ww:property value="name" />">
<script>
var elem = $('#name_in').val();
alert(">>"+elem);
</script>
在這種情況下,編碼效果很好! 另外,也不需要JS轉義字符,例如“和”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.