相关疑难解决方法(0)

设置默认的Java字符编码?

如何以编程方式正确设置JVM(1.5.x)使用​​的默认字符编码?

我已经读过-Dfile.encoding=whatever以前用于旧JVM的方法......由于我不会进入的原因,我没有那么奢侈.

我试过了:

System.setProperty("file.encoding", "UTF-8");
Run Code Online (Sandbox Code Playgroud)

并且属性已设置,但它似乎不会导致下面的最终getBytes调用使用UTF8:

    System.setProperty("file.encoding", "UTF-8");

    byte inbytes[] = new byte[1024];

    FileInputStream fis = new FileInputStream("response.txt");
    fis.read(inbytes);
    FileOutputStream fos = new FileOutputStream("response-2.txt");
    String in = new String(inbytes, "UTF8");
    fos.write(in.getBytes());
Run Code Online (Sandbox Code Playgroud)

java utf-8 character-encoding

342
推荐指数
10
解决办法
62万
查看次数

在Mac OS X上的Java Swing JComponent中渲染Devanagari连字(Unicode)

我试图在Mac OS X 10.6上正确渲染Devanagari连字(在Unicode字符串中).

字符串在a上绘制JComponent并RenderingHints用于抗锯齿.连字在Windows XP SP2和7以及Ubuntu中正确显示,但在Mac OS X中,连字被分解(或者更确切地说,没有正确合并),变音符被移离其位置等等(参见下面的截图,正确的渲染示例来自左侧的Win XP SP2(使用RenderingHintsAntialiasing键ON),右侧的Mac OS X 10.6.7中的错误渲染示例(Antialising DEFAULT= OFF).

我已将字体设置如下,因此它应该在任何系统上使用默认字体:

new Font(null,Font.PLAIN,20);
Run Code Online (Sandbox Code Playgroud)

我相信所有这些可能与Macs上的默认字符编码是MacRoman(不是UTF-8子集)以及其他系统(如Windows)使用UTF-8子集(例如WinLatin-1)这一事实有关. )或cp1252等.

即使掌握了这些信息,我也不知道如何处理这个问题.因此,如果有人能指出我正确的方向,我将非常感激.

正确和错误地呈现相同的字符串

我已经尝试了很多东西:

  • 将字体设置为Devanagari MT并没有解决问题
  • TextAttribute LIGATURES_ON 没有解决问题

我非常感谢任何提示或其他开发人员的代码片段(最好是在Mac上开发的印地语背景).

java unicode macos rendering ligature

22
推荐指数
2
解决办法
2204
查看次数

标签 统计

java ×2

character-encoding ×1

ligature ×1

macos ×1

rendering ×1

unicode ×1

utf-8 ×1