[openrtm-users 01135] Re: java版1.0RC1でのTimedStringでの日本語の取り扱いについて

Toshitaka Fujioka fujioka-txa @ necst.nec.co.jp
2010年 2月 23日 (火) 09:40:01 JST


産総研 安藤様、お世話になっております。
NECシステムテクノロジー 藤岡です。

On 2010/02/22 18:56, Ando Noriaki wrote:
> NECシステムテクノロジー 藤岡さま
> 
> 安藤です
> 
> CORBA の string でも UTF-8を通すことはできるので、コンポーネントを
> 実行する java のコマンドラインオプションに以下のようにCORBAで使用する
> キャラクタセットを指定してあげることで日本語を使えるようになるみたいです。
> 
> java -Dcom.sun.CORBA.codeset.charsets=0x05010001,0x00010109
> -Dcom.sun.CORBA.codeset.wcharsets=0x00010109,0x05010001 YourComponent
> -f rtc.conf
> 
> こちらでは、データポートでは試していませんが、サービスポートでは
> 日本語が通ることが確認できました。テストには、SimpleServiceを使用しました。

こちらでも、SimpleServiceを使用しMyServiceProvider.batとMyServiceConsumer.bat
に上記オプションを付加することにより、日本語が通ることが確認できました。

> データポートについても、このコマンドラインオプションで
> 試してみていただけますでしょうか。

上記オプションを付加して、実行させましたが、オプションなしの時と同様のエラーが
表示され日本語は通りませんでした。


以上です、よろしくお願いいたします。
失礼いたします。

> #ちなみに、このオプションを指定すると、こちらではRTSystemEditorが
> #重くなる現象が現れました。
> 
> よろしくお願いいたします。
> 
> 
> 
> 2010年2月22日14:43 Toshitaka Fujioka<fujioka-txa @ necst.nec.co.jp>:
>> OpenRTM-aist開発者様、お世話になっております。
>> NECシステムテクノロジーの藤岡と申します。
>>
>>
>> OpenRTM-aist-Java-1.0.0-RC1.msi付属のサンプルソースConsoleInImpl.java、ConsoleOutImpl.java
>> のポートのデータタイプを添付ファイルのようにTimedStringに変更しデータのやり取りをしたところ
>> ascii文字は問題なく送受信できますが、日本語を送信しようとすると以下のようなエラーが表示され
>> ます。
>>
>> java版のTimedString型ではC++・Python版のように日本語を取り扱うことは出来ないのでしょうか?
>>
>> ==================================================================
>> Please input number:
>> abcd
>> Sending to subscriber: abcd
>> Please input number:
>> あいうえお
>> Sending to subscriber: あいうえお
>> 2010/02/22 14:17:11 com.sun.corba.se.impl.encoding.CodeSetConversion$JavaCTBConv
>> erter convertCharArray
>> 警告: "IOP02400001: (DATA_CONVERSION) Character does not map to negotiated trans
>> mission code set"
>> org.omg.CORBA.DATA_CONVERSION:   vmcid: OMG  minor code: 1  completed: No
>>         at com.sun.corba.se.impl.logging.OMGSystemException.charNotInCodeset(Unk
>> nown Source)
>>         at com.sun.corba.se.impl.logging.OMGSystemException.charNotInCodeset(Unk
>> nown Source)
>>         at com.sun.corba.se.impl.encoding.CodeSetConversion$JavaCTBConverter.con
>> vertCharArray(Unknown Source)
>>         at com.sun.corba.se.impl.encoding.CodeSetConversion$JavaCTBConverter.con
>> vert(Unknown Source)
>>         at com.sun.corba.se.impl.encoding.CDROutputStream_1_0.writeString(Unknow
>> n Source)
>>         at com.sun.corba.se.impl.encoding.CDROutputStream_1_0.write_string(Unkno
>> wn Source)
>>         at com.sun.corba.se.impl.encoding.CDROutputStream.write_string(Unknown S
>> ource)
>>         at RTC.TimedStringHelper.write(Unknown Source)
>>         at RTC.TimedStringHolder._write(Unknown Source)
>>         at jp.go.aist.rtm.RTC.port.OutPort.write_stream(Unknown Source)
>>         at jp.go.aist.rtm.RTC.port.OutPort.write(Unknown Source)
>>         at jp.go.aist.rtm.RTC.port.OutPort.write(Unknown Source)
>>         at RTMExamples.SimpleIO.ConsoleInImpl.onExecute(ConsoleInImpl.java:103)
>>         at jp.go.aist.rtm.RTC.RTObject_impl.on_execute(Unknown Source)
>>         at OpenRTM.DataFlowComponentPOA._invoke(Unknown Source)
>>         at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispa
>> tchToServant(Unknown Source)
>>         at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispa
>> tch(Unknown Source)
>>         at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest
>> Request(Unknown Source)
>>         at com.sun.corba.se.impl.protocol.SharedCDRClientRequestDispatcherImpl.m
>> arshalingComplete(Unknown Source)
>>         at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(Unknown
>>   Source)
>>         at org.omg.CORBA.portable.ObjectImpl._invoke(Unknown Source)
>>         at OpenRTM._DataFlowComponentStub.on_execute(Unknown Source)
>>         at jp.go.aist.rtm.RTC.executionContext.PeriodicExecutionContext$DFP.on_e
>> xecute(Unknown Source)
>>         at jp.go.aist.rtm.RTC.executionContext.PeriodicExecutionContext$DFPBase$
>> onExecute.doAction(Unknown Source)
>>         at jp.go.aist.rtm.RTC.StateMachine.worker(Unknown Source)
>>         at jp.go.aist.rtm.RTC.executionContext.PeriodicExecutionContext$DFPBase.
>> worker(Unknown Source)
>>         at jp.go.aist.rtm.RTC.executionContext.PeriodicExecutionContext$Comp.inv
>> oke(Unknown Source)
>>         at jp.go.aist.rtm.RTC.executionContext.PeriodicExecutionContext.svc(Unkn
>> own Source)
>>         at jp.go.aist.rtm.RTC.executionContext.PeriodicExecutionContext.run(Unkn
>> own Source)
>>         at java.lang.Thread.run(Unknown Source)
>> Caused by: java.nio.charset.UnmappableCharacterException: Input length = 1
>>         at java.nio.charset.CoderResult.throwException(Unknown Source)
>>         at java.nio.charset.CharsetEncoder.encode(Unknown Source)
>>         ... 28 more
>> =================================================================================
>>
>>
>> 以上です、よろしくお願いいたします。
>> 失礼いたします。
>>
>> --
>> NECシステムテクノロジー(株)
>> プラットフォーム事業本部 エンベデッドソフトウェア事業部
>> ウインドウズ エンベデッド ソリューション センター
>> 藤岡 俊考 fujioka-txa @ necst.nec.co.jp
>> tel: 078-991-5580 telnet: 8-73-73869
>>
> 
> 
> 

-- 
NECシステムテクノロジー(株)
プラットフォーム事業本部 エンベデッドソフトウェア事業部
ウインドウズ エンベデッド ソリューション センター
藤岡 俊考 fujioka-txa @ necst.nec.co.jp
tel: 078-991-5580 telnet: 8-73-73869



openrtm-users メーリングリストの案内