簡體   English   中英

Java UTF-8特殊字符轉換為JavaScript

[英]Java UTF-8 special characters to JavaScript

我有一個Java Web應用程序(Webwork),並且有一些.jsps文件,它們顯示一些可以是特殊(UTF-8)字符的數據。 例如:JérômeSerrano

.jsps包含正確的UTF-8標頭:

  • which has <%@ page pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> 在我的jsp中,我包含了一個 ,它具有<%@ page pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %>
  • in turn includes a which looks like: 依次包含一個 ,如下所示:
<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>

但是在JS中字符無法正確顯示! 在此輸入圖像描述

那么,為什么在加載.jsp時可以正確呈現字符,但是一旦將它們傳遞給JS,它們就會壞了?

具有UTF-8字符集的外部JavaScript:

 <script src="myscripts.js" charset="UTF-8"></script> 
或內部:D!

 <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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM