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 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
> =================================================================================
>
>
> 以上です、よろしくお願いいたします。
> 失礼いたします。
>
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
=================================================================================
以上です、よろしくお願いいたします。
失礼いたします。