jsp mysql 转义字符
publicStringdoHtml(Stringtxt){if(txt!=null){txt=replace(txt,"&","&");txt=replace(...
public String doHtml(String txt){
if(txt!=null){
txt=replace(txt,"&","&");
txt=replace(txt,"<","<");
txt=replace(txt,">",">");
txt=replace(txt," "," ");
txt=replace(txt,"\n","<br>");
txt=replace(txt,"\t"," ");
txt=replace(txt,"\b","\\b");
}
return donull(txt);
}
想用函数将'\n'转换,谁知连自己输入的"\n"也被转换成<br>了
mysql里的\n都是用ASCII表示吗?
怎么解决这个问题?
txt=replace(txt,"<","& a m p ");
txt=replace(txt,">","& g t ;");
txt=replace(txt," ","& n b s p") ;
txt=replace(txt,"\t","& n b s p & n b s p & n b s p & n b s p & n b s p & n b s p & n b s p & n b s p");
注:& n b s p这间的空格是因为他们显示不出来才添加的,本来没有 展开
if(txt!=null){
txt=replace(txt,"&","&");
txt=replace(txt,"<","<");
txt=replace(txt,">",">");
txt=replace(txt," "," ");
txt=replace(txt,"\n","<br>");
txt=replace(txt,"\t"," ");
txt=replace(txt,"\b","\\b");
}
return donull(txt);
}
想用函数将'\n'转换,谁知连自己输入的"\n"也被转换成<br>了
mysql里的\n都是用ASCII表示吗?
怎么解决这个问题?
txt=replace(txt,"<","& a m p ");
txt=replace(txt,">","& g t ;");
txt=replace(txt," ","& n b s p") ;
txt=replace(txt,"\t","& n b s p & n b s p & n b s p & n b s p & n b s p & n b s p & n b s p & n b s p");
注:& n b s p这间的空格是因为他们显示不出来才添加的,本来没有 展开
2个回答
2015-08-02 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464973
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
在字符串中,某些序列具有特殊含义。这些序列均用反斜线(‘\’)开始,即所谓的转义字符。MySQL识别下面的转义序列:
\0
一个 ASCII 0 (NUL) 字符。
\'
一个 ASCII 39 单引号 (“'”) 字符。
\"
一个 ASCII 34 双引号 (“"”) 字符。
\b
一个 ASCII 8 退格符。
\n
一个 ASCII 10 换行符。
\r
一个 ASCII 13 回车符。
\t
一个 ASCII 9 制表符(TAB)。
\z
ASCII(26) (Control-Z)。这个字符可以处理在 Windows 系统中 ASCII(26) 代表一个文件的结束的问题。(当使用 mysql database < filename 时 ASCII(26) 可能会引起问题产生。)
\\
一个 ASCII 92 反斜线 (“\”) 字符。
\%
一个 ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数。
\_
一个 ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数.
注意如果在某些正文环境内使用 “\%” 或 “\_”,将返回字符串 “\%” 和 “\_” 而不是 “%” 和 “_”。
字符串中包含引号的可以有下列几种写法:
一个字符串用单引号“'”来引用的,该字符串中的单引号“'”字符可以用“''”方式转义。
一个字符串用双引号“"”来引用的,该字符串中的“"”字符可以用“""”方式转义。
一个字符串用双引号“"”来引用的,该字符串中的单引号“'”不需要特殊对待而且不必被重复或转义。同理,一个字符串用单引号“'”来引用的,该字符串中的双引号“"”不需要特殊对待而且不必被重复或转义。
\0
一个 ASCII 0 (NUL) 字符。
\'
一个 ASCII 39 单引号 (“'”) 字符。
\"
一个 ASCII 34 双引号 (“"”) 字符。
\b
一个 ASCII 8 退格符。
\n
一个 ASCII 10 换行符。
\r
一个 ASCII 13 回车符。
\t
一个 ASCII 9 制表符(TAB)。
\z
ASCII(26) (Control-Z)。这个字符可以处理在 Windows 系统中 ASCII(26) 代表一个文件的结束的问题。(当使用 mysql database < filename 时 ASCII(26) 可能会引起问题产生。)
\\
一个 ASCII 92 反斜线 (“\”) 字符。
\%
一个 ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数。
\_
一个 ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数.
注意如果在某些正文环境内使用 “\%” 或 “\_”,将返回字符串 “\%” 和 “\_” 而不是 “%” 和 “_”。
字符串中包含引号的可以有下列几种写法:
一个字符串用单引号“'”来引用的,该字符串中的单引号“'”字符可以用“''”方式转义。
一个字符串用双引号“"”来引用的,该字符串中的“"”字符可以用“""”方式转义。
一个字符串用双引号“"”来引用的,该字符串中的单引号“'”不需要特殊对待而且不必被重复或转义。同理,一个字符串用单引号“'”来引用的,该字符串中的双引号“"”不需要特殊对待而且不必被重复或转义。
展开全部
终于解决了~呵呵呵(我是aries_sun即c-aries)
想了三天,每天都搞到我早上两三点才睡,废寝忘食没洗澡^-^
public String doHtml(String str)
{
if(str==null)
return donull(str);
else{
int len=str.length();
StringBuffer sb=new StringBuffer();
char ch;
for(int i=0;i<len;i++)
{
ch=str.charAt(i);
switch(ch)
{
case '&': sb.append("&");break;
case '<': sb.append("<");break;
case '>': sb.append(">");break;
case '\n': sb.append("<br>");break;
case '\t': sb.append(" ");break;
case ' ': sb.append(" ");break;
default: sb.append(ch);
}
}
return sb.toString();
}
}
//刚处理完中文后,存储入数据库的必要操作
public String doSql(String str){
if(str==null)
return donull(str);
else{
int len=str.length();
StringBuffer sb=new StringBuffer();
char ch;
for(int i=0;i<len;i++){
ch=str.charAt(i);
switch(ch){
case '\'': sb.append("''");break;
case '\\': sb.append("\\\\");break;
default:sb.append(ch);
}
}
return sb.toString();
}
}
想了三天,每天都搞到我早上两三点才睡,废寝忘食没洗澡^-^
public String doHtml(String str)
{
if(str==null)
return donull(str);
else{
int len=str.length();
StringBuffer sb=new StringBuffer();
char ch;
for(int i=0;i<len;i++)
{
ch=str.charAt(i);
switch(ch)
{
case '&': sb.append("&");break;
case '<': sb.append("<");break;
case '>': sb.append(">");break;
case '\n': sb.append("<br>");break;
case '\t': sb.append(" ");break;
case ' ': sb.append(" ");break;
default: sb.append(ch);
}
}
return sb.toString();
}
}
//刚处理完中文后,存储入数据库的必要操作
public String doSql(String str){
if(str==null)
return donull(str);
else{
int len=str.length();
StringBuffer sb=new StringBuffer();
char ch;
for(int i=0;i<len;i++){
ch=str.charAt(i);
switch(ch){
case '\'': sb.append("''");break;
case '\\': sb.append("\\\\");break;
default:sb.append(ch);
}
}
return sb.toString();
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询