打印系统提示构造xml数据出错打印失败
1、检查c:\windows\文件夹下,有没有Temp文件夹,如果没有,则需要新建一个
2、桌面云雀图标->鼠标右键->以管理员权限运行
3、如果还不行,那么一般你是win8系统,你再看看c:\windows\Temp 文件夹->鼠标右键->属性->安全 ,user/(你的windows用户名) 是不是没有‘修改’‘写入’两个权限,如果没有,都改成有。然后再试试云雀打印。
如果win7,win8系统遇到不能修改文件夹权限,请看下面的教程:
默认情况下,系统文件管理员(Adminitrators)只有读取和读取执行的权限,没有完全控制的权限,因此是没有办法修改的。只有TrustedInstaller才有完全控制的权限。因此需要将Adminitrators设置为完全控制的权限。
2、改文件的所有者
要将Adminitrators设置为完全控制的权限首先需要修改该文件的所有者。
打开文件高级安全设置,可以看到,默认情况下文件所有者为TrustedInstaller,需要修改为当前用户。
3、选择当前用户为所有者并确定,这样文件的所有者就变成了当前用户了。注意:需要重新打开文件属性才能生效。
4、修改角色的控制权限,获得文件所有者权限后,就可以对文件赋予相应的控制权限了(此处设置Adminitrators为完全控制权限)。重新打开文件安全属性,点击编辑
5、对Adminitrators的权限进行设置,勾选完全控制,确定即可。
编码问题,function characterData改成如下
function characterData($parser_instance, $xml_data)
{
global $name,$position;
$xml_data=iconv("utf-8","gb2312",$xml_data);//转换成gb2312
if($position)
echo $xml_data"<br>";
if($name)
echo $xml_data"<br>";
}
显示的那个页面也要有charset=gb2312
跟踪问题所在:
1、查询一下数据库,判断在数据库中的时候,是否是已经存在了乱码。
2、在读取到Java的时候,你用SystemOut输出一下,判断这个时候,是否是乱码。
3、写入到xml文件的时候,XML中是否是乱码。
如果是1种情况出现乱码,则是写入数据库的时候出现乱码,需要更改写入程序的代码。
如果是2种情况出现乱码,则是读取Oracle的字符集出现错误,设置读取的字符集。
如果是3种情况出现乱码,则是在Java类中写入的时候,设置字符集,查看数据库字符集,设置为UTF-8、或者是GBK字符集。
希望对你有帮助。
产生原因是xml文件中包含低位非打印字符造成的
处理方法:在产生xml文件的时候,过滤低位非打印字符
public static string ReplaceLowOrderASCIICharacters(string tmp)
{
StringBuilder info = new StringBuilder();
foreach (char cc in tmp)
{
int ss = (int)cc;
if (((ss >= 0) && (ss <= 8)) || ((ss >= 11) && (ss <= 12)) || ((ss >= 14) && (ss <= 32)))
infoAppendFormat(" ", ss);//{0:X};
else infoAppend(cc);
}
return infoToString();
}
0条评论