我想正确打印unicode(比如希腊字符),但我有问题。例如:
PrintStream oStream = new PrintStream(client.getOutputStream(), true, "UTF-8");
oStream.write(" Customer : Γειά σου\r\n".getBytes());
oStream.write(" ΚΩΔΙΚΟΣ : 00000234242\r\n".getBytes());
oStream.flush();
oStream.close();
OR
OutputStreamWriter oStream = new OutputStreamWriter(client.getOutputStream(), "UTF-16");
oStream.write(" Customer : Γειά σου\r\n");
oStream.write(" ΚΩΔΙΚΟΣ : 00000234242\r\n");
oStream.flush();
oStream.close();
问题是是否有任何解决方案可以正确打印所有卡哈拉特。我认为对于希腊字符,UTF-16是可以的。
永远不要依赖默认编码,最好总是指定,如果您想坚持使用创建字节数组的冗余方式来打印,而不是更优雅、更直观、更优越的直接使用字符串的方式...
oStream.write(" Customer : Γειά σου\r\n".getBytes("UTF-8"));
oStream.write(" ΚΩΔΙΚΟΣ : 00000234242\r\n".getBytes("UTF-8"));
来自OP的评论
客户端是输出流
这可能是个问题!我不相信打印机能正确获取UTF-8纯字符串。一定要用纯ASCII字符串对其进行测试,以确保其他一切正常。
编辑
从Xerox WorkCentre/WorkCentre Pro系列的PDL参考指南:
本文档并非PS或PCL参考手册,而是在PS、PCL或ASCII打印作业中使用WorkCentre扩展功能的指南。
任何地方都没有提到UTF-8…
来自SAP的此文档:Xerox_SAP_Device_Types
要启用Xerox®打印机进行Unicode打印,请获取支持UTF-8字符集的型号的Unicode打印解决方案,其中有一个可选套件,称为Xeroxs®International Unicode printing。
这听起来不太好…
这很可能是问题所在:
oStream.write(" Customer : Γειά σου\r\n".getBytes());
oStream.write(" ΚΩΔΙΚΟΣ : 00000234242\r\n".getBytes());
您正在调用字符串.getBytes()
而不进行编码,以使用平台默认编码获取字节数组。无论如何,这几乎总是一个坏主意,这意味着您之前指定了UTF-8的事实与这两行无关。当打印流
获取数据时,它已经是二进制的。
试试这个:
oStream.print(" Customer : Γειά σου\r\n");
oStream.print(" ΚΩΔΙΚΟΣ : 00000234242\r\n");
注意:
PrintStream或PrintWriter。他们接受例外
如果只编写文本,则应使用Writer
子类,而不是OutputStream
子类
还不清楚您的源代码是否得到了正确的处理:您需要检查用于编译代码的代码是否知道源文件使用的编码
我建议您将输出流包装在一个
OutputStreamWriter
…中,这样您就可以指定编码,您不必担心意外写入二进制数据(因为API不允许),也不会看到异常被吞没。
我有一个数据库,它存储带有Unicode字符的视频游戏名称,但我不知道如何在将这些Unicode字符打印到超文本标记语言响应时正确转义它们。 例如,当我打印所有名为Uncharted的游戏时,我会得到以下信息: 但它应该显示以下内容: 我运行了一个快速的JavaScript转义函数,查看哪个Unicode字符™并发现它是。 如果我能得到字符以正确显示。我的猜测是以某种方式找到字符串中每个字符的十六
我目前的logClass有一个问题,无法打印umlauts“üäß”,我创建这个命令是为了将控制台上的每个字符串打印到JTextPane。 我已经在方法“控制台”上将PrintStream设置为使用“UTF-8”,并且我已经尝试了不同的字体,但是在尝试打印特殊字符时,我总是会出现错误字符。有人会对如何解决这个问题提出建议吗? 这是我的代码:
问题内容: 例如,如何转换字符串。我从网站获得的字符串,未在中进行编码。它工作在计划只是罚款使用Swing( ),但是当我过去的链接罐子Windows控制台(要运行的应用程序),它不显示在字符串中正确的字符的字符和。 我从网站上得到那串 。如何在Swing应用程序中进行编码或显示,因此当我运行应用程序时,它将向我显示此字符(以及课程的其他unicode字符(“Ž”,“ž”,“č”和“Š”) )?
问题内容: 我有一个已编码为UTF-8的俄语字符串 当我在Eclipse控制台中打印字符串时,我得到有人可以建议如何将俄语字符串打印到控制台,或者我在这里做错了什么? 我尝试过使用它将其转换为字节,然后仍然是同样的问题:-( 问题答案: 试试这个: 或这个: 俄语的主要问题是正确设置UTF-8编码。
问题内容: 我正在使用BeautifulSoup从HTML提取一些文本,但是我只是想不出如何正确地将其打印到屏幕(或与此相关的文件)上。 这是我的包含文本的类的样子: 当尝试打印一个实例时,这是我在控制台上看到的: 无论我尝试什么,都无法获得想要的输出(上面的文本应该是希伯来语)。我的最终目标是序列化到文件(使用json或pickle)并能够将其读回。 我在Ubuntu 10.10上使用Pytho
我正在评估与thymeleaf模板引擎的Spring启动。我正面临UTF8字符表单张贴问题。 对于最简单的post示例: 在控制器中: 在本例中,Spring MVC(或thymeleaf)无法正确编码具有UTF-8字符的表单。 如果我输入,我将看到以下日志: 应编码为。正文应该是,但我不知道为什么它会变成,并被解码成错误的字符。 我在谷歌上搜索并找到了一些解决方案,比如添加一个编码过滤器: 但不