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

katami fsi-katami @ aist.go.jp
2010年 2月 22日 (月) 16:52:02 JST


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>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: UsersDataType.idl
型:         application/octet-stream
サイズ:     105 バイト
説明:       無し
URL:        <http://www.openrtm.org/pipermail/openrtm-users/attachments/20100222/a633428c/attachment-0001.obj>


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