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

ysuga ysuga @ pop07.odn.ne.jp
2010年 2月 22日 (月) 18:40:00 JST


早大の菅です.
すみません.自己レスです.


 > jp.go.aist.rtm.RTC.util.WStringHolderクラス
 >
 > が必要になると思いますがいかがでしょうか?


WStringHolderクラスは,ConfigurationでWString型を使う場合に必要でした.
DataPort等の扱いのみでは必要ないと思います.
とりあえず,自分の環境ではうまくいっているようです.


ではでは


/***************************************
  * 菅 佑樹
  * ysuga @ ysuga.net
  * http://www.ysuga.net
  * お知らせ:RTミドルウエア始めました
  ***************************************/

(2010/02/22 17:36), ysuga wrote:
> OpenRTM-aist MLの皆さま:
> 早大の菅です.
>
> 同様の問題に片見様ご提案の方法で対処しましたところ,実行可能でした.
> ただその場合,
>
> jp.go.aist.rtm.RTC.util.WStringHolderクラス
>
> が必要になると思いますがいかがでしょうか?
> RC1のJava版コードをSVNで取得し,
> 僕の環境でEclilpseのAntプロジェクトのインポート後に
> idlコンパイルを実行したら,
> WStringHolderクラスは生成されませんよね?
>
>
>
> /***************************************
> * 菅 佑樹
> * ysuga @ ysuga.net
> * http://www.ysuga.net
> * お知らせ:RTミドルウエア始めました
> ***************************************/
>
> (2010/02/22 16:52), katami wrote:
>> NECシステムテクノロジー
>> 藤岡 俊考 様
>>
>> お世話になっております。
>> 産総研 片見です。
>>
>> Java版の場合、日本語はワイド文字列型(wstring)を使用するこになります。
>> TimedString 型 ( 参照 BasicDataType.idl) は time 型と string 型で構成
>> されているため、
>> ご報告頂いたエラーが発生いたします。
>>
>> TimedWString 型を定義した idl ファイルを添付いたします。
>> (time 型と wstring 型で構成してあります。)
>> TimedString 型 を TimedWString 型 に変更して
>> ご使用して頂ければ、日本語も送信可能となります。
>>
>> 添付した idl ファイルは、BasicDataType.idl をインクルードしています。
>> idl をコンパイルする際は、-i オプションにてフォルダの指定をお願いいた
>> します。
>> >idlj -i "C:\Program Files\OpenRTM-aist\jp.go.aist.rtm.RTC\idl"
>> UsersDataType.idl
>>
>> お手数ですが、
>> よろしくお願いいたします。
>>
>> On Mon, 22 Feb 2010 14:43:40 +0900
>> Toshitaka Fujioka<fujioka-txa @ necst.nec.co.jp> wrote:
>>
>>> 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
>>
>>
>> 独立行政法人産業技術総合研究所
>> 知能システム研究部門 統合知能研究グループ
>> 〒305-8568 茨城県つくば市梅園1-1-1 中央第2
>> 片見 剛人<fsi-katami @ aist.go.jp>
>>
>>>>
>> __________ ESET NOD32 Antivirus からの情報, ウイルス定義データベースの
>> バージョン 4885 (20100221) __________
>>
>> このメッセージは ESET NOD32 Antivirus によって検査済みです。
>>
>> http://canon-its.jp
>>
>
>
> __________ Information from ESET NOD32 Antivirus, version of virus
> signature database 4885 (20100221) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>
>



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