right adjusted strings containing umlauts

Neil Cerutti neilc at norwich.edu
Thu Aug 8 10:40:27 EDT 2013


On 2013-08-08, Kurt Mueller <kurt.alfred.mueller at gmail.com> wrote:
> I'd like to print strings right adjusted.
> ( Python 2.7.3, Linux 3.4.47-2.38-desktop )
>
> from __future__ import print_function
> print( '>{0:>3}<'.format( 'a' ) )
>>  a<
>
> But if the string contains an Umlaut:
> print( '>{0:>3}<'.format( '??' ) )
>> ??<
>
> Same with % notation:
> print( '>%3s<' % ( 'a' ) )
>>  a<
> print( '>%3s<' % ( '??' ) )
>> ??<
>
> For a string with no Umlaut it uses 3 characters, but for an
> Umlaut it uses only 2 characters.
>
> I guess it has to to with unicode.
> How do I get it right?

You guessed it!

Use unicode strings instead of byte strings, e.g., u"...".

-- 
Neil Cerutti



More information about the Python-list mailing list