1. 程式人生 > >Java-html程式碼和特殊字元轉義

Java-html程式碼和特殊字元轉義

1. 特殊字元轉義

適用場景:向前臺傳遞json資料時,由於傳遞的字串中含有特殊字元,需要轉義之後返回給前臺

public static String specialCharConvert(String orginalStr) {
if(!isEmpty(orginalStr)) {
StringBuffer sb = new StringBuffer();
char tmpc = 'a';
for (int i = 0; i < orginalStr.length(); i++) {
tmpc = orginalStr.charAt(i);
switch (tmpc) {
case '\"':
sb.append("\\\"");
break;
case '\\': // 如果不處理單引號,可以釋放此段程式碼,若結合下面的方法處理單引號就必須註釋掉該段程式碼
sb.append("\\\\");
break;
case '/':
sb.append("\\/");
break;
case '\b': // 退格
sb.append("\\b");
break;
case '\f': // 走紙換頁
sb.append("\\f");
break;
case '\n':
sb.append("\\n");// 換行
break;
case '\r': // 回車
sb.append("\\r");
break;
case '\t': // 橫向跳格
sb.append("\\t");
break;
default:
sb.append(tmpc);
}
}
return sb.toString();
} else {
return "";
}

}

2. html程式碼轉義

適用場景:向前臺傳遞的資料含有html程式碼,需要轉義展示
public static String stringToHTMLString(String string) {
   StringBuffer sb = new StringBuffer(string.length());
   // true if last char was blank
   boolean lastWasBlankChar = false;
   int len = string.length();
   char c;


   for (int i = 0; i < len; i++)
       {
       c = string.charAt(i);
       if (c == ' ') {
           // blank gets extra work,
           // this solves the problem you get if you replace all
           // blanks with &nbsp;, if you do that you loss 
           // word breaking
           if (lastWasBlankChar) {
               lastWasBlankChar = false;
               sb.append("&nbsp;");
               }
           else {
               lastWasBlankChar = true;
               sb.append(' ');
               }
           }
       else {
           lastWasBlankChar = false;
           //
           // HTML Special Chars
           if (c == '"')
               sb.append("&quot;");
           else if (c == '&')
               sb.append("&amp;");
           else if (c == '<')
               sb.append("&lt;");
           else if (c == '>')
               sb.append("&gt;");
           else if (c == '\n')
               // Handle Newline
               sb.append("&lt;br/&gt;");
           else {
               int ci = 0xffff & c;
               if (ci < 160 )
                   // nothing special only 7 Bit
                   sb.append(c);
               else {
                   // Not 7 Bit use the unicode system
                   sb.append("&#");
                   sb.append(new Integer(ci).toString());
                   sb.append(';');
                   }
               }
           }
       }
   return sb.toString();
}

可以使用spring自帶的HtmlUtils或者Apache的StringEscapeUtils轉義。

相關推薦

Java-html程式碼特殊字元轉義

1. 特殊字元轉義 適用場景:向前臺傳遞json資料時,由於傳遞的字串中含有特殊字元,需要轉義之後返回給前臺 public static String specialCharConvert(String orginalStr) {if(!isEmpty(orginalStr

jQuery中將特殊字元轉義html標籤反轉

在專案中新增富文字編輯器時,發現了儲存的資料最終顯示時是以 這種方式顯示 我再去控制檯輸出顯示下資料發現是已經將字元轉義成特殊字元了 哈哈哈哈哈哈&lt;div&gt;啦啦啦啦啦&lt;/div&gt; 所以此資料放入div中時html不能解析為

[Java工具類]spring常用工具類 2.特殊字元轉義方法入參檢測工具類

特殊字元轉義 由於 Web 應用程式需要聯合使用到多種語言,每種語言都包含一些特殊的字元,對於動態語言或標籤式的語言而言,如果需要動態構造語言的內容時,一個我們經常會碰到的問題就是特殊字元轉義的問題。下面是 Web 開發者最常面對需要轉義的特殊字元型別: HTML 特

Java處理正則表示式特殊字元轉義

正則需要轉義字元:'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|' 異常現象: java.util.regex.PatternSyntaxException: Dangling

Java String字串Unicode字元相互轉換程式碼(包括混有普通字元的Unicode)

package util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * * <p>Title: String 與 Unicode 互相轉換的工具類</p> * <p>

js html 特殊字元轉義

function html_encode(str) { var s = ""; if (str.length == 0) return ""; s = str.replace(/&/g, "&"); s = s.

[HTTP]_[C/C++]_[HTML特殊字元轉義成正常字元]

場景: 1.在沒有HTML庫時(誰有好的html庫介紹下,C/C++的?tinyXML?),以SAX方式解析HTML時,會讀入特殊字元,這時候需要轉義成正常字元才能使用。 2.耗時,4-6小時(被打擾)。 3.replace雖然挺好,但是會迴圈整個字串執行替換,效率應該沒

java處理SQL特殊字元轉義 防止sql注入

SQL特殊字元轉義 應 該說,您即使沒有處理 HTML 或 JavaScript 的特殊字元,也不會帶來災難性的後果,但是如果不在動態構造 SQL 語句時對變數中特殊字元進行處理,將可能導致程式漏洞、資料盜取、資料破壞等嚴重的安全問題。網路中有大量講解 SQL 注入的文

Java 檔案下載 csv檔案匯出特殊字元轉義

需求描述 將從資料庫查出的資料以生成csv檔案的方式下載下來(匯出)。 實現方案 最開始的方法是: 將從資料庫中查出的資料拼成符合csv檔案格式的字串,然後將字串轉為輸入流,最後返回InputStreamResource,達到下載的目的。下邊是實現的

Spring 的優秀工具類盤點,第 2 部分: 特殊字元轉義方法入參檢測工具類

特殊字元轉義 由於 Web 應用程式需要聯合使用到多種語言,每種語言都包含一些特殊的字元,對於動態語言或標籤式的語言而言,如果需要動態構造語言的內容時,一個我們經常會碰到的問題就是特殊字元轉義的問題。下面是 Web 開發者最常面對需要轉義的特殊字元型別: HTML 特

Java特殊字元轉義(、"、/、&)

public static String filter(String value) { if(value == null){ return null;

oracle & ' 特殊字元處理 ( like 'GAC/&_%' escape '&'; 這裡面的 / 居然將& 轉義了 為什麼?)

今天在匯入一批資料到Oracle時,碰到了一個問題:Toad提示(plsql 也一樣)要給一個自定義變數AMP賦值,一開始我很納悶,資料是一系列的Insert語句,怎麼會有自定義變數呢?後來搜尋了一下關鍵字AMP發現,原來是因為在插入資料中有一個欄位的內容如下: Orac

設定editText密碼可見性特殊字元過濾

此方法中的過濾規則可以根據需求自定義,此方法還可以用於其它型別輸入檢測 private static boolean checkLegalCharacters(String name, boolean isPasswd) {         Pattern

xml檔案中特殊字元轉義

在使用mybatis/ibatis寫sql時總是忘記特殊轉義表示,在此記錄 左邊為xml特殊符號,右邊是轉義 <     &lt;>     &gt;&   &

面試題:一個字串包含英文特殊字元特殊字元不變,英文順序反過來,比如string str="[email 

public class Reverse { public static void main(String[] args) { String str = "[email protected]!tk"; char[] chars = str.toCh

php 特殊字元轉義,實現字串安全存入資料庫

php 特殊字元轉義,實現字串安全存入資料庫 <?php /** * php 特殊字元轉義,實現字串安全存入資料庫 * * @param [type] $content [description] * @return [type] [description

Android資原始檔strings實現特殊字元轉義

<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post"

js特殊字元轉義

/** * 特殊字元轉義 防止XSS攻擊 用於特殊字元正常顯示 * @param text * @constructor */ function StringFilter(str) { var s = ""; if (str.length === 0) { return ""

Mybatis特殊字元轉義

<![CDATA[ ]]> XML檔案會在解析XML時將5種特殊字元進行轉義,分別是&, <, >, “, ‘, 我們不希望語法被轉義,就需要進行特別處理。 有兩種解決方法:其一,使用<![CDATA[ ]]>標籤來包

CSS 選擇器中的特殊字元轉義

function escapeJquery(srcString) { // 轉義之後的結果 var escapseResult = srcString; // javascript正則表示式中的特殊字元 va