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



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




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!