<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>robertbao&#039;s website &#187; code</title>
	<atom:link href="http://www.robertbao.com/post/tag/code/feed" rel="self" type="application/rss+xml" />
	<link>http://www.robertbao.com</link>
	<description>robertbao的个人网站</description>
	<lastBuildDate>Wed, 01 Sep 2010 07:59:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ajax返回中文乱码的问题</title>
		<link>http://www.robertbao.com/post/1131</link>
		<comments>http://www.robertbao.com/post/1131#comments</comments>
		<pubDate>Thu, 17 May 2007 01:07:04 +0000</pubDate>
		<dc:creator>robertbao</dc:creator>
				<category><![CDATA[WORK]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[weblogic]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[
  用taconite做Ajax，以前都是尽量返回数字或英文，这样一方面避免中文问题，一方面减小传输量，在页面再用一个map通过js来匹配，显示出相应的中文。


  这次情况有些特殊，“摘要”栏的内容是其他交易输入的，因此要做到动态匹配，本身页面上的map还要到后台去取一遍，这样就太浪费了，还是解决一下中文问题，直接传回来中文的内容比较好。


  


  问题其实就是返回来的responseText或responseXML的值中含有中文就变乱码，taconite的js又不认这个，就报错。


  这个问题要说解决起来也很简单，原因是Ajax在接收responseText或responseXML的值的时候是按照UTF-8来解码的，如果服务器端发送的数据不是UTF-8的格式，那么接收的值就会是乱码，而Java后台这边是以Unicode来编码的，问题就出现了。


  解决方法就是在服务器端设置response的编码格式：


  response.setCharacterEncoding(&#34;UTF-8&#34;);


  这样就能正常显示中文了，上图中的&#34;科目号&#34;里就包括了回显的中文。


  另外在测试环境试了一下，在WebLogic 8.1 SP5上那样设还不行，一定要设成：


  response.setContentType(&#34;text/xml;charset=UTF-8&#34;);

相关文章

2007-05-13 &#8212; 报表服务器分离 (2)
2007-04-03 &#8212; weblogic与httpd整合 (0)

]]></description>
			<content:encoded><![CDATA[<p>
  用taconite做Ajax，以前都是尽量返回数字或英文，这样一方面避免中文问题，一方面减小传输量，在页面再用一个map通过js来匹配，显示出相应的中文。
</p>
<p>
  这次情况有些特殊，“摘要”栏的内容是其他交易输入的，因此要做到动态匹配，本身页面上的map还要到后台去取一遍，这样就太浪费了，还是解决一下中文问题，直接传回来中文的内容比较好。
</p>
<p>
  <img src="http://www.robertbao.com/image/subj.jpg"/>
</p>
<p>
  问题其实就是返回来的responseText或responseXML的值中含有中文就变乱码，taconite的js又不认这个，就报错。
</p>
<p>
  这个问题要说解决起来也很简单，原因是Ajax在接收responseText或responseXML的值的时候是按照UTF-8来解码的，如果服务器端发送的数据不是UTF-8的格式，那么接收的值就会是乱码，而Java后台这边是以Unicode来编码的，问题就出现了。
</p>
<p>
  解决方法就是在服务器端设置response的编码格式：
</p>
<p>
  response.setCharacterEncoding(&quot;UTF-8&quot;);
</p>
<p>
  这样就能正常显示中文了，上图中的&quot;科目号&quot;里就包括了回显的中文。
</p>
<p>
  另外在测试环境试了一下，在WebLogic 8.1 SP5上那样设还不行，一定要设成：
</p>
<p>
  response.setContentType(&quot;text/xml;charset=UTF-8&quot;);
</p>
<h3>相关文章</h3>
<ul class="related_post">
<li>2007-05-13 &#8212; <a href="http://www.robertbao.com/post/1130" title="报表服务器分离">报表服务器分离 (2)</a></li>
<li>2007-04-03 &#8212; <a href="http://www.robertbao.com/post/1194" title="weblogic与httpd整合">weblogic与httpd整合 (0)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robertbao.com/post/1131/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
