JSP中显示?

lxr01
JSP中显示?

环境:数据库sybase(scounix) tomcat(winxp)
当从数据库中选择数据显示时为?,其他显示正常.:outu: :outu:
感谢

solaris_yschang
[quote]原帖由 [i]lxr01[/i] 于 2008-6-2 15:57 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8487096&ptid=1120808][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
环境:数据库sybase(scounix) tomcat(winxp)
当从数据库中选择数据显示时为?,其他显示正常.:outu:utu:" />utu:" /> :outu:utu:" />utu:" />
感谢 [/quote]
这是典型的字符集不匹配问题。
首先通过sybase的客户端执行sql查询,看查询出来的数据是否正常?即,数据入库是否正常。
如果不正常,则在入库前需要进行转换。
可以建立一个filter类,对其中表单数据、请求URL等进行转换,例如:
EncodeFilter.java
[table=95%][tr][td][font=FixedSys][color=#000000]
[color=#0000ff]package[/color] web[color=#0000cc].[/color]common[color=#0000cc].[/color][color=#ff0000]filter[/color][color=#0000cc];[/color]

[color=#ff9900]// 引入包及相应结构
[/color]
[color=#0000ff]import[/color] [color=#ff0000]java[/color][color=#0000cc].[/color][color=#ff0000]net[/color][color=#0000cc].[/color][color=#ff0000]SocketException[/color][color=#0000cc];[/color]
[color=#0000ff]import[/color] [color=#ff0000]javax[/color][color=#0000cc].[/color]servlet[color=#0000cc].[/color][color=#0000cc]*[/color][color=#0000cc];[/color]
[color=#0000ff]import[/color] [color=#ff0000]javax[/color][color=#0000cc].[/color]servlet[color=#0000cc].[/color]http[color=#0000cc].[/color]HttpServletRequest[color=#0000cc];[/color]
[color=#0000ff]import[/color] [color=#ff0000]org[/color][color=#0000cc].[/color]apache[color=#0000cc].[/color]log4j[color=#0000cc].[/color][color=#ff0000]Logger[/color][color=#0000cc];[/color]

[color=#0000ff]public[/color] [color=#0000ff]class[/color] EncodeFilter
     [color=#0000ff]implements[/color] [color=#ff0000]Filter[/color]
[color=#0000cc]{[/color]

[color=#ff9900]// 类成员变量定义域开始
[/color]

     [color=#0000ff]private[/color] [color=#ff0000]String[/color] [color=#ff0000]encode[/color][color=#0000cc];[/color]
     [color=#0000ff]private[/color] FilterConfig [color=#ff0000]config[/color][color=#0000cc];[/color]

[color=#ff9900]// 类成员变量定义域结束      < 初始化过程祥见构造方法 >
[/color]

     [color=#0000ff]public[/color] EncodeFilter[color=#0000cc]([/color][color=#0000cc])[/color]  [color=#ff9900]// 构造方法 (如有必要,请手工调整该方法)
[/color]
     [color=#0000cc]{[/color]
          [color=#ff0000]encode[/color] [color=#0000cc]=[/color] [color=#ff00ff]"gb2312"[/color][color=#0000cc];[/color]
          [color=#ff0000]config[/color] [color=#0000cc]=[/color] [color=#0000ff]null[/color][color=#0000cc];[/color]
     [color=#0000cc]}[/color][color=#ff9900]//构造方法结束
[/color]


     [color=#0000ff]public[/color] [color=#0000ff]void[/color] [color=#ff0000]init[/color][color=#0000cc]([/color]FilterConfig [color=#ff0000]config[/color][color=#0000cc])[/color]
     [color=#0000cc]{[/color]
          [color=#0000ff]this[/color][color=#0000cc].[/color][color=#ff0000]config[/color] [color=#0000cc]=[/color] [color=#ff0000]config[/color][color=#0000cc];[/color]
          [color=#ff0000]encode[/color] [color=#0000cc]=[/color] [color=#ff0000]config[/color][color=#0000cc].[/color]getInitParameter[color=#0000cc]([/color][color=#ff00ff]"encode"[/color][color=#0000cc])[/color][color=#0000cc];[/color]
     [color=#0000cc]}[/color]

     [color=#0000ff]public[/color] [color=#0000ff]void[/color] doFilter[color=#0000cc]([/color]ServletRequest [color=#ff0000]request[/color][color=#0000cc],[/color] ServletResponse response[color=#0000cc],[/color] FilterChain chain[color=#0000cc])[/color]
     [color=#0000cc]{[/color]
          [color=#0000ff]try[/color]
          [color=#0000cc]{[/color]
               [color=#ff0000]request[/color][color=#0000cc].[/color]setCharacterEncoding[color=#0000cc]([/color][color=#ff0000]encode[/color][color=#0000cc])[/color][color=#0000cc];[/color]
               response[color=#0000cc].[/color][color=#ff0000]setContentType[/color][color=#0000cc]([/color][color=#ff00ff]"text/html;charset="[/color] [color=#0000cc]+[/color] [color=#ff0000]encode[/color][color=#0000cc])[/color][color=#0000cc];[/color]
               chain[color=#0000cc].[/color]doFilter[color=#0000cc]([/color][color=#ff0000]request[/color][color=#0000cc],[/color] response[color=#0000cc])[/color][color=#0000cc];[/color]
          [color=#0000cc]}[/color]
          [color=#0000ff]catch[/color][color=#0000cc]([/color][color=#ff0000]Exception[/color] e[color=#0000cc])[/color]
          [color=#0000cc]{[/color]
               [color=#0000ff]if[/color][color=#0000cc]([/color][color=#0000cc]![/color][color=#0000cc]([/color]e [color=#0000ff]instanceof[/color] [color=#ff0000]SocketException[/color][color=#0000cc])[/color][color=#0000cc])[/color]
               [color=#0000cc]{[/color]
                    [color=#0000ff]if[/color][color=#0000cc]([/color][color=#ff0000]request[/color] [color=#0000ff]instanceof[/color] HttpServletRequest[color=#0000cc])[/color]
                    [color=#ff0000]Logger[/color][color=#0000cc].[/color][color=#ff0000]getLogger[/color][color=#0000cc]([/color][color=#ff0000]getClass[/color][color=#0000cc]([/color][color=#0000cc])[/color][color=#0000cc])[/color][color=#0000cc].[/color][color=#ff0000]error[/color][color=#0000cc]([/color][color=#ff00ff]"error request uri:"[/color] [color=#0000cc]+[/color] [color=#0000cc]([/color][color=#0000cc]([/color]HttpServletRequest[color=#0000cc])[/color][color=#ff0000]request[/color][color=#0000cc])[/color][color=#0000cc].[/color]getRequestURI[color=#0000cc]([/color][color=#0000cc])[/color][color=#0000cc])[/color][color=#0000cc];[/color]
                    [color=#ff0000]Logger[/color][color=#0000cc].[/color][color=#ff0000]getLogger[/color][color=#0000cc]([/color][color=#ff0000]getClass[/color][color=#0000cc]([/color][color=#0000cc])[/color][color=#0000cc])[/color][color=#0000cc].[/color][color=#ff0000]error[/color][color=#0000cc]([/color]e[color=#0000cc])[/color][color=#0000cc];[/color]
               [color=#0000cc]}[/color]
          [color=#0000cc]}[/color]
     [color=#0000cc]}[/color]

     [color=#0000ff]public[/color] [color=#0000ff]void[/color] [color=#ff0000]destroy[/color][color=#0000cc]([/color][color=#0000cc])[/color]
     [color=#0000cc]{[/color]
          [color=#ff0000]config[/color] [color=#0000cc]=[/color] [color=#0000ff]null[/color][color=#0000cc];[/color]
          [color=#ff0000]encode[/color] [color=#0000cc]=[/color] [color=#0000ff]null[/color][color=#0000cc];[/color]
     [color=#0000cc]}[/color]


[color=#0000cc]}[/color][color=#ff9900]//  implements Filter 结束
[/color]
[/color][/font][/td][/tr][/table]
然后在你的web.xml中加入:
[table=95%][tr][td][font=FixedSys][color=#000000] [color=#0000CC]<[/color]filter[color=#0000CC]>[/color]
&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]<[/color]filter-name[color=#0000CC]>[/color]EncodeFilter[color=#0000CC]<[/color][color=#0000CC]/[/color]filter-name[color=#0000CC]>[/color]
&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]<[/color]display-name[color=#0000CC]>[/color]EncodeFilter[color=#0000CC]<[/color][color=#0000CC]/[/color]display-name[color=#0000CC]>[/color]
&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]<[/color]filter-class[color=#0000CC]>[/color]web[color=#0000CC].[/color]common[color=#0000CC].[/color]filter[color=#0000CC].[/color]EncodeFilter[color=#0000CC]<[/color][color=#0000CC]/[/color]filter-class[color=#0000CC]>[/color]
&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]<[/color]init-param[color=#0000CC]>[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]<[/color]param-name[color=#0000CC]>[/color]encode[color=#0000CC]<[/color][color=#0000CC]/[/color]param-name[color=#0000CC]>[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]<[/color]param-value[color=#0000CC]>[/color]gb2312[color=#0000CC]<[/color][color=#0000CC]/[/color]param-value[color=#0000CC]>[/color]
&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]<[/color][color=#0000CC]/[/color]init-param[color=#0000CC]>[/color]
&nbsp;&nbsp;[color=#0000CC]<[/color][color=#0000CC]/[/color]filter[color=#0000CC]>[/color]
&nbsp;&nbsp;[color=#0000CC]<[/color]filter-mapping[color=#0000CC]>[/color]
&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]<[/color]filter-name[color=#0000CC]>[/color]EncodeFilter[color=#0000CC]<[/color][color=#0000CC]/[/color]filter-name[color=#0000CC]>[/color]
&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]<[/color]url-pattern[color=#0000CC]>[/color][color=#0000CC]/[/color][color=#0000CC]*[/color][color=#0000CC]<[/color][color=#0000CC]/[/color]url-pattern[color=#0000CC]>[/color]
&nbsp;&nbsp;[color=#0000CC]<[/color][color=#0000CC]/[/color]filter-mapping[color=#0000CC]>[/color]
[/color][/font][/td][/tr][/table]