0 0

linux通讯生僻字乱码30

生僻字:王桭(chen)
说明:传输过来的报文为UTF-8格式,linux默认为GB2312。通过日志打印、写到文件、报文转换之后结果为日志和转换后的报文生僻字为乱码。而写到文件的是可以正常显示。所以进来的流是正常的。打印日志和转换报文好像是经GB2312转换后成了“王?”请问怎么在不修改服务器编码格式的情况下能够正常转换报文。
代码:
//流方式读取
InputStreamReader isr = new InputStreamReader(in, "utf-8");
br = new BufferedReader(isr);
String line = null;
while (true) {
line = br.readLine();
if (line == null) {
  break;
}
buffer.append(line + "\n");
}
String reqpak = buffer.toString();


//字节方式读取
request.setCharacterEncoding("utf-8");
int length = request.getContentLength();
byte[] bt = new byte[length];
in.read(bt);
String reqpak = new String(bt, "utf-8");


//写到指定文件测试生僻字乱码
String osName = System.getProperties().getProperty("os.name");
File file = null;
if(osName.indexOf("Windows")!=-1){
file = new File("G:\\test.txt");
}else{
  file = new File("/xbus/tomcat/logs/aaa.txt");
}
FileOutputStream fileout = new FileOutputStream(file);
byte[] by = reqpak.getBytes("UTF-8");
fileout.write(by);
fileout.flush();
fileout.close();

//记录日志
HsLogger.getInstance().writeDebug(reqpak);

//转换报文
xmlcov = new XmlConver(reqpak);

//转换报文方法
public XmlConver(String docstr) {
try {
strDoc = docstr;
xmlpak = new XmlPackage(strDoc);//方法在下面
Element messageEle = xmlpak.getNode("/Message");
messageId = messageEle.getAttributeValue("id");
List list = messageEle.getChildren();
Element comEle = (Element) list.get(0);

commId = comEle.getAttributeValue("id");
commTrans = comEle.getName();
} catch (Exception e) {
HsLogger.getInstance().writeError("xml转换失败:" + e.getMessage());
}
}

/**
* 根据返回报文字符串,构造一个xml文档
*/
public XmlPackage(String buf) throws HsAlipayException {
try {
SAXBuilder sb = new SAXBuilder();
xmlDoc = sb.build(new StringReader(buf));
root = xmlDoc.getRootElement();
} catch (Exception e) {
e.printStackTrace();
throw new HsAlipayException("返回报文转化成xml文档失败!");
}
}

1个答案 按时间排序 按投票排序

0 0

生僻字一般用gb2312编码吧?报文为xml文件吧?xml可以修改编码方式,你改为gb2312就可以了,参考:http://www.iteye.com/problems/11829,HsLogger.getInstance().writeDebug(reqpak); 中的reqpak也用gb2312试试。

2013年4月27日 23:26

相关推荐

    GBase8S支持中文生僻字注意事项.docx

    GBase8S 中文生僻字支持注意事项 GBase8S 是国产数据库管理系统,支持中文生僻字输入。然而,在建立数据库和插入数据时,需要注意一些重要的环境变量设置,否则可能会导致数据导入失败或乱码。 第一重要的环境变量...

    font_生僻字.zip

    标题“font_生僻字.zip”表明这是一份与生僻字相关的压缩文件,很可能包含的是特殊字体或者字库,用于显示那些不常见或者在日常生活中很少使用的汉字。生僻字,顾名思义,指的是那些在汉语中使用频率极低的字符,...

    chrome生僻字解决方案

    在使用Chrome浏览器时,有时会遇到显示生僻字的问题,这主要是由于系统默认的字体库不包含某些罕见或特殊的汉字,导致浏览器无法正确渲染。Chrome生僻字解决方案主要涉及以下几个方面: 1. **字体替换**:Chrome...

    处理生僻字

    生僻字,也被称为罕用字或冷僻字,是指在日常生活中不常使用的汉字,它们在语言交流中出现频率较低,但在某些专业领域或古籍中却常见。处理生僻字是信息技术中的一个特殊挑战,因为这些字符的编码复杂,且在不同的...

    javadbf.jar-修复中文乱码-部分生僻字显示成问号的问题

    用于在java代码中写入dbf文件并输出文件。在原代码的使用过程中,对于姓名字段中不常见的汉字,会变成“?”号,比如“张芃”,会变成“张?”,这个包是修复这个问题的。

    生僻字安装包.zip

    生僻字又称冷僻字,指不常见的或人们不熟悉的汉字。 自从有汉字以来,汉字也是在不断发展和变化的。中国最早的文字是商代的甲骨文,约为3500至4500字,因为其中有些符号,现在也不能确定是不是文字,或者那个时代的...

    java汉字乱码终极解决代码

    开发中前台页面向后台传参,汉字乱码,看了好多网上的方法都解决不了,所以写了一个工具类,判断是乱码就转换,不乱码就不乱换,汉字字母符号自动判断。最后完美解决汉字乱码问题。

    生僻字带增强图片数据集

    生僻字带增强图片数据集是一个专门针对生僻汉字的图像处理资源,它结合了计算机视觉和自然语言处理领域的知识,旨在帮助开发者和研究人员训练更准确的汉字识别模型,特别是对于那些不常见、使用频率较低的汉字。...

    db2 生僻字排序解决方案

    ### db2生僻字排序解决方案 #### 背景与问题描述 在处理中文环境下的数据时,经常会遇到一些生僻字或者特殊字符在数据库中的排序问题。这些问题往往会导致查询结果不符合预期,尤其是在使用像DB2这样的大型关系型...

    人口字库生僻字

    人口字库 生僻字输入和打印,显示都可以。方正宋一人口信息字库有三万个以上字符,非常全

    生僻字与16进制的转换

    在实际应用中,处理生僻字时还要注意编码不兼容问题,避免乱码的出现。 总之,“生僻字与16进制的转换”是一个涵盖字符编码理论、编程实践和技术工具的复杂主题,涉及到计算机科学的基础知识,对于IT专业人士来说,...

    CDC-MQ数据库生僻字转码ž;

    本文将详细探讨标题“CDC-MQ数据库生僻字转码”所涉及的知识点,以及如何解决描述中提到的生僻字乱码问题。 **一、CDC(Change Data Capture)** CDC是一种数据库技术,用于捕获数据库中的数据变更,以便实时或...

    delphi 汉字转拼音首字母含生僻字

    这个主题聚焦于在Delphi环境下实现一个功能,即将汉字转换为拼音首字母,包括处理生僻字的情况。这个功能在多种场景下都有用到,比如中文数据的索引、搜索优化或语音识别的预处理。 首先,我们要理解汉字转拼音的...

    【PHP 】解决上传CSV表格读取内容乱码,针对生僻字解决方案

    在项目开发过程中发现,读取表格列,相同的两个字如“思思”,读取出来的是特殊符号,还有读取其他的某些字符或生僻字,都会显示特殊符号,通过这个代码已经完美解决。

    生僻字区位码对照表

    生僻字区位码对照表

    繁难字库生僻字不用造

    - **字量规模**: 该字库包含了大约16,000个字符,覆盖了大量的生僻字需求,满足了不同领域的使用场景。 - **版权情况**: 这个字库并未申请专利保护,而是以非商业目的在师友、同行之间免费流通。这意味着任何人可以...

    PHP 过滤生僻字和特殊字符

    2. **数据格式**:某些系统或数据库可能无法正确处理某些生僻字或特殊字符,导致存储失败或数据乱码。 3. **用户体验**:生僻字和特殊字符可能导致页面显示异常,影响用户阅读体验。 4. **规范性**:在特定场景下,...

    汉字GBK首字母(含生僻字)C++实现代码文件

    这个压缩包中的资源,"汉字GBK首字母(含生僻字)C++实现代码文件",提供了一个C++解决方案,用于获取汉字的GBK编码对应的首字母,包括了生僻字以及特例汉字的处理。GBK是GB2312的扩展,增加了更多的汉字和符号,...

    delphi7环境下 汉字拼音首字母 含3000+生僻字

    前辈的汉字转拼音首字母适合于delphi高版本,用笨办法成delphi7可用,效率不算差,这个最大的好处,遇到任何生僻字,都可以通过调整识别解决,已经解决了一大部分生僻字了。

Global site tag (gtag.js) - Google Analytics