导航:首页 > 操作系统 > linuxjsp乱码

linuxjsp乱码

发布时间:2022-12-12 04:13:26

① 如何使linuxjava支持中文

,大家在安装过程中或者使用过程中所遇到的中文乱码问题是当前的JVM还不支持中文,想要让你linux系统下的java程序支持中文其实很简单,只要讲系统的中字体文件链接或者拷贝到JVM中的fonts中然后安装字体就可以了.
我们系统的中字体存贮在/usr/share/fonts中,该文件夹下存储了系统中存储的各种字体,比如/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf.我们需要的做的就是将系统中的某个字体文件拷贝或者链接到JVM中的font中.
我的JVM安装路径为/usr/lib/jvm/java-6-sun,java中使用的字体文件存储于/usr/lib/jvm/java-6-sun/jre/lib/fonts
在该文件夹下创建文件夹sudo mkdir fallback
然后建立链接sudo ln -s /usr/share/fonts/truetype/wqy/wqy-zenhei.ttf
/usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback/
这步完成之后你会在fallback文件夹下看到一个指向WQY字体的链接.
切入fallback文件夹 执行操作:
sudo mkfontdir
sudo mkfontscale
这样你的JVM就支持中文字体了.

② 如何解决linux下面resin运行JSP出现乱码

但是一到服务器上面一运行发现还是乱码测试发现跑
*.html是不会出现乱码的。现在来看一下如果运行
*.jsp哦就出现乱码了我的页面:<%@ page language="java"
import="java.util.*" pageEncoding="utf-8"%<metahttp-equiv="Content-Type" content="text/html;
charset=utf-8" /
这样设置之后再运行发现还是出现中文乱码了。奇怪了~解决Linux下面运行JSP出现中文乱码的方案:1.
设置好这几个地方
<%@ page contentType="text/html; charset=utf-8"%
<%@ page language="java"2.
import="java.util.*,com.util.IPUtil"
pageEncoding="utf-8"%JSP页面的头部设置好META标签的编码风格
<Meta http-equiv="Content-Type" Content="text/html; Charset= utf-8"
<Meta http-equiv="Content-Language" Content="utf-8"
//-------------------------浏览器编码-----------------<html
<head<meta http-equiv="Content-Type"
content="text/html; charset= utf-8"</head</html//控制住JSP页面的编码形式!
<%@ page pageEncoding=" utf-8"%//JSP页面编码:
<%@ page contentType="text/html";charset= utf-8%//JSP
页面输出编码:
<% request.setCharacterEncoding("utf-8");%//JSP页面输入编码:
//------------------------MySql编码-------------------
Connection connect = java.sql.DriverManager.getConnection(
"jdbc:mysql://localhost/mydb?user=登陆帐号&password=你的密码&useUnicode=true&characterEncoding= utf-8");说明:1、
控制浏览器的输出显示编码是:

③ Linux下从JSP问号传值到控制器中出现中文乱码

jsp传值要设置 输入流编码的。具体怎么设置你到网上找~。 好像是head里面设置

④ 发布到Linux服务器出现页面传入后台的汉字乱码

首先我是用idea开发的,我的需求是在将java项目部署到服务器上,去调取数据,在用?id=北京 这种传参时,linux服务器出现乱码,最后试了多种方法,仅供参考
页面pageEncoding = "utf-8" charset="utf-8"

(1)server.xml 配置端口号出配置 URIEncoding = "UTF-8" 这是针对浏览器的编码
还有个参数 useBodyEncodingForURI = "true"; 暂时没搞清是什么
(2)web.xml 中的字符集过滤器 是针对springMVC的字符集
(3) url 中 ?拼接的参数 不会经过字符集拦截器 重定向中可以使用ModelAndView 的对象,
ModelAndView mv = new ModelAndView("redirect:/index.do");
mv.addObject("id",id);
(4)自定义拦截器
①写一个实现了 HandlerInterceptorAdpter 的拦截器 并且手动实现 preHandle() return true;
② springMVC配置文件中配置
<mvc:interceptors>
<bean id="idInterceptor" class="app.plant.interceptor.IdInterceptor"></bean>
</mvc:interceptors>
③指定字符集
String id = request.getParameter("id");
if(id != null){
id = new String(id.getBytes("iso-8859-1"),"utf-8");
request.setAttribute("id",id);
}
return true;

⑤ 如何解决Java中的中文乱码问题

对于Java,由于默认的编码方式是UNICODE,所以用中文也易出问题,常见的解决是:

String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);

1、utf8解决JSP中文乱码问题
一般说来在每个页面的开始处,加入:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>

◆charset=UTF-8的作用是指定JSP向客户端输出的编码方式为“UTF-8”;
◆pageEncoding="UTF-8",为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在LINUX中很有效;
◆request.setCharacterEncoding("UTF-8");是对请求进行了中文编码。

有时,这样仍不能解决问题,还需要这样处理一下:

String msg = request.getParameter("message");
String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");
out.println(st);

⑥ websphere8.5部署的web项目,在windows下没有问题,在linux系统下出现从jsp页面到action出现乱码问题

WebSphere中国社区正在搞WAS专家答疑,可以去那看看

⑦ 分页标签中传入的参数乱码,怎么解决

原理剖析:
服务器是tomcat默认使用的编码是IOS-8859-1.页面使用的编码格式是GBK,那么在提交的时候GBK编码的数据经过服务器(ISO-8859-1)编译之后变成了乱码.这个时候我们需要把接收到的数据,先使用ISO-8859-1解析回来得到字节数据,再使用页面的编码格式GBK去这里这个字节数据,得到正确的中文.

所以需要先将得到 "字符 "(不管是什么)都先用字节数组表示,且使用ISO-8859-1进行翻译,得到一个在ISO-8859-1编码环境下的字节数组.例如:AB表示成[64,65].然后再用GBK编码这个数组,并翻译成一个字符串.

那么我们可以得到一个编码转换的过程
假设:GBK码( "你 ")-> URLencode后变成-> (%3F%2F)-> Tomcat自动替你转一次ISO-8859-1-> 得到( 23 43 68 23 42 68 每一个符号表示为ISO-8859-1中的一个编码)-> 接收页面---> 再转一次为ISO-8859-1的Byte数组[23,43,68,23,42,68]---> 用GBK再转为可读的文字---> (%3F%2F "----> 转为( "你 ")

解决办法:
utf8解决JSP中文乱码问题
一般说来在每个页面的开始处,加入:

以下是引用片段:
<%@ page language= "java " contentType= "text ml; charset=UTF-8 "
pageEncoding= "UTF-8 "%>
<%
request.setCharacterEncoding( "UTF-8 ");
%>
charset=UTF-8 的作用是指定JSP向客户端输出的编码方式为“UTF-8”
pageEncoding= "UTF-8 " 为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在LINUX中很有效
request.setCharacterEncoding( "UTF-8 "); 是对请求进行了中文编码
有时,这样仍不能解决问题,还需要这样处理一下:
String msg = request.getParameter( "message ");
String str=new String(msg.getBytes( "ISO-8859-1 "), "UTF-8 ");
out.println(st);

⑧ jsp高手请进,我用jspsmartupload上传文件,但我表单获得的中文是乱码(UTF-8)的,如何解决

以下,是中文乱码的各种解决方法,要记住了,很有用,肯定有一种方法能帮你解决的。希望能帮到你。

URIENcoding 设成GBK或GB2312
2. 表单中或传递字符串:本来输入的汉字是正常的,但是提交后再显示出来是乱码,因为提交的一般是 ISO8859编码,所以显示的时候要转成GB2312编码:
String S=new String(rs.getString("news").getBytes("gb2312"),"ISO8859_1");
//rs.getString("news")为待转换的字符串
然后使用S字符串的值就可以了
3. 有的服务器端的语言环境如果设成简体中文的也可以解决此类问题
4. 插入数据库中的字符是乱码
看看数据库中支持的是何种编码方式,用类似2中的方式作一下转换即可。
5. 总之,用jsp开发,碰到乱码,你得分析是读的时候发生乱码,还是写的时候发生乱码,用2中的转换,基本就能解决问题,有些时候写的时候做一次转换,例如:
String S=new String(rs.getString("news").getBytes("gb2312"),"ISO8859_1");
//读的时候在转换回来
String S=new String(rs.getString("news").getBytes("ISO8859_1"),"GB2312");
或者把ISO8859-1和GB2312 的位置换一下,自己多试试,就能找到解决问题的办法。

将乱码问题分为三类JSP页面显示中文乱码;表单提交乱码;数据库应用乱码
1) JSP页面内输出中文时出现乱码
解决方案在JSP文件中使用page命令指定响应结果的MIME类型,如<%@ page language="java" contentType="text/html;charset=gb2312" %>
2)表单提交乱码
表单提交时(post和Get方法),使用request.getParameter方法得到乱码,这是因为tomcat处理提交的参数时默认的是iso-8859-1,表单提交get和post处理乱码问题不同,下面分别说明。
(1)POST处理
对post提交的表单通过编写一个过滤器的方法来解决,过滤器在用户提交的数据被处理之前被调用,可以在这里改变参数的编码方式,过滤器的代码如下:
package cn.gov.beijingit.util;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class SetCharacterEncodingFilter implements Filter {

/**
* The default character encoding to set for requests that pass through this
* filter.
*/
protected String encoding = null;

/**
* The filter configuration object we are associated with. If this value is
* null, this filter instance is not currently configured.
*/
protected FilterConfig filterConfig = null;

/**
* Should a character encoding specified by the client be ignored?
*/
protected boolean ignore = true;

// --------------------------------------------------------- Public Methods

/**
* Take this filter out of service.
*/
public void destroy() {

this.encoding = null;
this.filterConfig = null;

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

// Conditionally select and set the character encoding to be used
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null) {
request.setCharacterEncoding(encoding);
}
}

// Pass control on to the next filter
chain.doFilter(request, response);

}

/**
* Place this filter into service.
*
* @param filterConfig
* The filter configuration object
*/
public void init(FilterConfig filterConfig) throws ServletException {

this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null) {
this.ignore = true;
} else if (value.equalsIgnoreCase("true")) {
this.ignore = true;
} else if (value.equalsIgnoreCase("yes")) {
this.ignore = true;
} else {
this.ignore = false;
}

}

protected String selectEncoding(ServletRequest request) {

return (this.encoding);

}

}
web.xml文件加入过滤器
<filter>
<filter-name>Encoding</filter-name>
<filter-class>
cn.gov.beijingit.util.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gbk</param-value>
<!--gbk或者gb2312或者utf-8-->
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Encoding</filter-name>
<servlet-name>/*</servlet-name>
</filter-mapping>
* 注意filter元素要放在所有web.xml元素之前。
(2) Get方法的处理
tomcat对post和get的处理方法不一样,所以过滤器不能解决get的乱码问题,它需要在其他地方设置。
打开<tomcat_home>\conf目录下server.xml文件,找到对8080端口进行服务的Connector组件的设置部分,给这个组件添加一个属性:URIEncoding="GBK"。修改后的Connector设置为:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />
* 注意修改后重新启动tomcat才能起作用。
3)数据库应用的乱码,本文还是以mysql为例
(1)修改配置文件<mysql_home>\my.init
将default-character-set=latin1修改为default-character-set=gbk
(2) 对接受的中文字符重新编码,例
String name=requset.getParameter("name");
name = new String(name.getBytes("gbk"),"iso8859-1");
4)tomcat5.x的include页面乱码
为了能让tomcat5.x能像tomcat4那样处理include页面,需要修改项目web-info/web.xml文件,把默认的字符集设置成gbk/gb2312就可以了,如:
<jsp-config>
<jsp-property-group>
<description>Special property group for JSP Configuration JSP example.</description>
<display-name>JSPConfiguration</display-name>

⑨ JDK Linux中文乱码问题

按jhuangjiahua的方法java应用程序的乱码问题可以解决。<br /><br /><br />标题: <span style="font-weight: bold;">再提 Ubuntu/Debian 下 JAVA 中文显示</span>
常见的字符转换方法

将Form 中 的 值 传 送 到 数 据 库 中 再 取 出 来 后 全 变 成 了“?”。Form用POST提交数据,代码中使用了语句:String st=new(request.getParameter(“name”).getBytes(“ISO8859_1”)), 而且也声明了charset=gb2312。

要处理Form中传递的中文参数,应该在JSP中加入下面的代码,另外定义一个专门解决这个问题的getStr类,然后对接收到的参数进行转换:
String keyword1=request.getParameter(“keyword1”);
keyword1=getStr(keyword1);
这样就可以解决问题了,代码如下:
<%@ page contentType=“text/html;charset=gb2312”%>
<%!
public String getStr(String str){
try{String temp_p=str;
byte[] temp_t=temp_p.getBytes(“ISO8859-1”);
String temp=new String(temp_t);
return temp;
}
catch(Exception e){ }
return “NULL”;
}
%>
<%--http://www.cndes.com测试--%>
<% String keyword=“创联网络技术中心欢迎您的到来”;
String keyword1=request.getParameter(“keyword1”);
keyword1=getStr(keyword1);
out.print(keyword);
out.print(keyword1);
%>

2. JDBC Driver的字符转换

目前大多数JDBC Driver采用本地编码格式来传输中文字符,例如中文字符“0x4175”会被转成“0x41”和“0x75”进行传输。因此需要对JDBC Driver返回的字符以及要发给JDBC Driver的字符进行转换。当用JDBC Driver向数据库中插入数据时,需要先将Unicode转成Native code; 当 JDBC Driver从数据库中查询数据时,则需要将Native code转换成Unicode。下面给出了这两种转换的实现:
String native2Unicode(String s) {
if (s == null || s.length() == 0) {
return null;
}
byte[] buffer = new byte[s.length()];
for (int i = 0; i s.length(); i++) { if (s.charAt(i)>= 0x100) {
c = s.charAt(i);
byte []buf = (“”+c).getBytes();
buffer[j++] = (char)buf[0];
buffer[j++] = (char)buf[1];
}
else {buffer[j++] = s.ch
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=377091

阅读全文

与linuxjsp乱码相关的资料

热点内容
linux电脑如何连接服务器地址 浏览:955
阿里域名邮箱pop服务器地址 浏览:852
李白pdf 浏览:782
pdfmax 浏览:223
跑步紧身裤压缩裤 浏览:215
郑州金水房价查询app哪个好 浏览:575
房地产开发流程pdf 浏览:243
小鹏p7能耗APP怎么查 浏览:243
如何代挂服务器 浏览:282
安卓机拍视频时怎么当背景音乐 浏览:879
方舟编译器华为p20pro更新 浏览:30
php程序漏洞 浏览:552
手机app怎么转过去 浏览:233
新建文件夹标记 浏览:486
两处收入个税App上怎么申报 浏览:674
hive创建数据库命令 浏览:844
服务器在台湾怎么加速 浏览:706
linuxparted磁盘分区命令 浏览:146
pdf缺点 浏览:839
kalilinuxu盘制作 浏览:926