Topic: Solaris下Smartupload上传文件文本出现乱码. |
Print this page |
1.Solaris下Smartupload上传文件文本出现乱码. | Copy to clipboard |
Posted by: momocha Posted on: 2004-09-27 17:41 在windows下sqlserver2000可以正常. 现换在Solaris,mysql,jsp页面编码utf-8,但客户端如果设置form的ENCTYPE="multipart/form-data"> 再用Smartupload的request取得的值是乱码,转码也试了,不行,希望得到指点.. |
2.Re:Solaris下Smartupload上传文件文本出现乱码. [Re: momocha] | Copy to clipboard |
Posted by: iqueen Posted on: 2004-09-27 17:49 转码后应该没有问题了啊,除非不需要转码。 |
3.Re:Solaris下Smartupload上传文件文本出现乱码. [Re: momocha] | Copy to clipboard |
Posted by: scud Posted on: 2004-09-27 21:31 如果不想改smartupload,那就设置solaris的locale 为zh_CN / utf-8 ? 也就是启动你的server的java的环境的编码和网页的一样 因为smartupload取内容的时候是new String(byte[])的,如果用new String(byte,encoding)就好了 当然可以自己改改smartupload |
4.Re:Solaris下Smartupload上传文件文本出现乱码. [Re: momocha] | Copy to clipboard |
Posted by: momocha Posted on: 2004-09-28 10:00 Solaris系统我不熟,自放上去后,页面编码设为gb2312出现乱码,设utf-8后正常(原来是gb2312). smartupload从页面取过来就是乱码了,我再把取过来的字符用new String(str.getBytes("iso8859-1"),"gb2312")或 new String(str.getBytes("utf-8"),"gb2312"),都不行,而直接用servlet的request直接取都是正确的.我也怀疑Solaris系统设置的问题. |
5.Re:Solaris下Smartupload上传文件文本出现乱码. [Re: momocha] | Copy to clipboard |
Posted by: scud Posted on: 2004-09-28 10:47 下面2种方法选其一即可,第二种更通用 1.找服务器管理员改 系统编码,很简单 2.修改smartupload 里面new String 相关的地方 () 大概有3处,new String的地方,指定编码即可,当然编码这个变量你可以写在配置文件里,或者通过其他方式获取 File.java里面的 String strTMP = new String(m_parent.m_binArray, m_startData, m_size); SmartUpload里面的 getDataHeader 有一处 String dataHeader = new String(m_binArray, start, (end - start) + 1); upload()里面有一处 都改成类似 String sValue = new String(aBinArray, nStart, nLen, m_streamCharsetEncode); 的方式 其中m_streamCharsetEncode是设置的编码 当然还可以设置选项决定是否转换 |
6.Re:Solaris下Smartupload上传文件文本出现乱码. [Re: momocha] | Copy to clipboard |
Posted by: scud Posted on: 2004-09-28 15:26 Solaris 8 如何改变缺省的语言环境 本文出自: http://docs.sun.com (2001-06-14 09:04:00) 术语"语言环境"和"种类"有如下关系: 语言环境包括语言规范、地域、代码集和其它特征。简体中文 Solaris 操作环境包括下列语言环境: C--对英文 ASCII 环境,该语言环境必须设置为 C。 zh--对简体中文 EUC 环境,该语言环境必须设置为 zh。 zh.GBK--对简体中文 GBK 环境,该语言环境必须设置为 zh.GBK。 zh.UTF-8--对简体中文 Unicode 环境,该语言环境必须设置为 zh.UTF-8。 .种类是组成语言环境的特征集。例如,字符显示或时间/日期的表达,其性能取决于 语言环境 。简体中文 Solaris 种类包括下列内容: LC_CTYPE 设置分类和转换的字符类型。 LC_TIME 设置用于表达日期和时间的语言环境。 LC_NUMERIC 设置数字表达的语言环境(也用于 I/O)。 LC_MONETARY 设置货币表达的语言环境。 LC_MESSAGES 设置给用户的消息的语言环境。 LC_COLLATE 设置取决语言环境的字符串校对。 环境变量 LC_ALL 明确为所有种类设置相同的语言环境;它有最高级优先权。如果种类或 LC_ALL 未设置,则 LANG 环境变量将决定种类设置。 用户可使用 shell 环境变量来改变语言环境设置。每个种类命名一个现有的语言环境。setlocale() 函数直接设置或查询这些种类的设置。国际化的功能使用这些设置来访问所需语言环境相应的表。 环境变量可用以间接设置种类:当 setlocale() 将种类设置为该地点的缺省设定值时,它使用每个环境变量的设定值来设置相关种类。setlocale() 函数不改变环境变量的设定值,只是读取它们的设定值。 可用下列步骤改变系统范围的缺省语言环境。 1.通过添加或改变此行以编辑 /etc/default/init 文件。 用 C、zh、zh.GBK 或 zh.UTF-8 替换 locale。 LANG=locale 2.使所有用户退出 CDE。 3.键入下列命令: %su # /usr/dt/bin/dtconfig -kill 4.键入下列命令: % su # reboot |
7.Re:Solaris下Smartupload上传文件文本出现乱码. [Re: momocha] | Copy to clipboard |
Posted by: momocha Posted on: 2004-09-29 09:57 谢谢scud,我试试看.. |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |