JRuby --1.9オプションとswt.jar

159 views
Skip to first unread message

Easylife

unread,
Mar 21, 2011, 10:05:24 AM3/21/11
to 日本JRubyユーザ会
Mac OS X Snow Leopardを利用しています。
SWTを利用したGUIアプリでJRubyの1.9モードを使って見たんですが、文字化けのトラブルが解決できずに困っています。
ファイルのエンコードはUTF-8で、マジックコメントもUTF-8にしました。
Label等に日本語を設定すると文字化けしてしまいます。

ファイルの文字コードを変更せずにマジックコメントを外して1.8モードで実行すると問題なく日本語は表示できます。
コードは以下です。

何が問題なんでしょう?

# -*- encoding: utf-8 -*-
require 'java'

class HelloJapaneseWorld

include_package 'org.eclipse.swt'
include_package 'org.eclipse.swt.layout'
include_package 'org.eclipse.swt.widgets'
def initialize
Display.setAppName "Ruby SWT Test"

@display = Display.new
@shell = Shell.new display
@shell.setSize(200, 200)

layout = RowLayout.new
layout.wrap = true

@shell.setLayout layout

label = Label.new(@shell, SWT::CENTER)
label.setText "こんにちは日本語世界" #文字化けする。

@shell.pack
end

def launch
@shell.open

while (!@shell.isDisposed) do
@display.sleep unless @display.readAndDispatch
end

@display.dispose
end
end

HelloJapaneseWorld.new.launch

Yoko Harada

unread,
Mar 23, 2011, 11:04:49 AM3/23/11
to jruby-u...@googlegroups.com
こんにちは

2011/3/21 Easylife <easyl...@gmail.com>:


> Mac OS X Snow Leopardを利用しています。
> SWTを利用したGUIアプリでJRubyの1.9モードを使って見たんですが、文字化けのトラブルが解決できずに困っています。
> ファイルのエンコードはUTF-8で、マジックコメントもUTF-8にしました。
> Label等に日本語を設定すると文字化けしてしまいます。

JRubyの場合、1.9のエンコーディングをJavaのfile.encodingから取得しているはずです。
OSX Snow Leopardを使っているということですから、file.encodingはシフトJISなので
UTF-8が文字化けしているのではないかと思います。file.encodingを設定するか、ファイルを
nkfなどを使ってシフトJISに変更すると文字化けを防げるかもしれません。
お試しください。

原田

菅谷昌広

unread,
Mar 27, 2011, 1:59:28 AM3/27/11
to jruby-u...@googlegroups.com
マジックコメントをShift_JISにして、ファイルのエンコードもShift_JISにし
てみたんですが、やっぱりだめですね。
file.encodingをUTF-8にしても駄目でした。
1.9モードはしばらくあきらめます。
ありがとうございました。
Reply all
Reply to author
Forward
0 new messages