Kaydet (Commit) 9266abdb authored tarafından Eike Rathke's avatar Eike Rathke

operate on UTF-8 encoded string, tdf#76870 follow-up

Change-Id: I00088a34a41f8adc4204f490fedee434c96bac67
üst 25434372
......@@ -225,16 +225,18 @@ void ScInterpreter::ScEncodeURL()
return;
}
OStringBuffer aUrlBuf;
for ( int i = 0; i < aStr.getLength(); i++ )
OString aUtf8Str( aStr.toUtf8());
const sal_Int32 nLen = aUtf8Str.getLength();
OStringBuffer aUrlBuf( nLen );;
for ( int i = 0; i < nLen; i++ )
{
sal_Unicode c = aStr[ i ];
if ( rtl::isAsciiAlphanumeric( c ) || c == '-' || c == '_' )
aUrlBuf.append( static_cast<sal_Char>( c ) );
sal_Char c = aUtf8Str[ i ];
if ( rtl::isAsciiAlphanumeric( static_cast<sal_uChar>( c ) ) || c == '-' || c == '_' )
aUrlBuf.append( c );
else
{
aUrlBuf.append( '%' );
aUrlBuf.append( OString::number( static_cast<sal_Int32>( c ), 16 ).toAsciiUpperCase() );
aUrlBuf.append( OString::number( static_cast<sal_uChar>( c ), 16 ).toAsciiUpperCase() );
}
}
PushString( OUString::fromUtf8( aUrlBuf.makeStringAndClear() ) );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment