convert rtl::OUString to char *

2013-09-24 Thread K.Misha
Hi!

 

I habe this code:

 

Reference  XTextDocument  xTextDocument (xWriterComponent,UNO_QUERY);

Reference XText  xText = xTextDocument-getText();

 

How can i convert xTextDocument-getText() to char * ?

 

I used to convert it like this:

 

int nLenOfAnsiChar = WideCharToMultiByte(CP_OEMCP, NULL,
xText-getString().pData-buffer, -1, NULL, 0, NULL, NULL );

char * str = new char(nLenOfAnsiChar);

WideCharToMultiByte(CP_OEMCP, NULL, xText-getString().pData-buffer,
nLenOfAnsiChar, str, nLenOfAnsiChar, NULL, NULL );

 

I converted it from unicode to ansi. But when i'm doing it in writer - i
have broken data. I think data here is in ANSI.

 

Thanks!

 



Re: convert rtl::OUString to char *

2013-09-24 Thread jg
WideCharToMultiByte() indicates that you are working on Windows. At first you need to convert to 
UTF16 (from UTF8), and then from UTF16 to the desired code page.


Have a look at 
http://code.msdn.microsoft.com/C-UTF-8-Conversion-Helpers-22c0a664 .

jg




Re: convert rtl::OUString to char *

2013-09-24 Thread Ariel Constenla-Haile
Hi,

On Tue, Sep 24, 2013 at 06:44:05PM +0300, K.Misha wrote:
 Hi!
 
  
 
 I habe this code:
 
  
 
 Reference  XTextDocument  xTextDocument (xWriterComponent,UNO_QUERY);
 
 Reference XText  xText = xTextDocument-getText();
 
  
 
 How can i convert xTextDocument-getText() to char * ?

First, the css.text.XText is not a string, use XTextRange::getString()
to get the rtl::OUString.

Then, convert the OUString to an OString and then use OString::getStr()

Reference XText  xText  = xTextDocument-getText();
const rtl::OUString uText = xText-getString();
const rtl::OString sText  = rtl::OUStringToOString( sText, 
RTL_TEXTENCODING_UTF8 );
const char *pzstr = sText.getStr();



Regards
-- 
Ariel Constenla-Haile
La Plata, Argentina


pgpge2XRd6BvB.pgp
Description: PGP signature


Re: convert rtl::OUString to char *

2013-09-24 Thread jg

WideCharToMultiByte() indicates that you are working on Windows. At first you 
need to convert to UTF16 (from UTF8), and then from UTF16 to the desired code 
page.

Have a look at 
http://code.msdn.microsoft.com/C-UTF-8-Conversion-Helpers-22c0a664 .

jg



-
To unsubscribe, e-mail: api-unsubscr...@openoffice.apache.org
For additional commands, e-mail: api-h...@openoffice.apache.org