печально быть антисоциальным - Post a comment

Aug. 18th, 2006

[info]cu

11:27 am

operējot ar parastajiem stringiem, kuros iekšā utf8 saturs, katrs ķeburs aizņēma 2 vai vairāk baitus. Un, ar rokām operējot ar stringu, varēja katram atsevišķajam baitam tikt klāt.
unicode stringos katrs ķeburs tiešām mums *izskatās* kā viens simbols. Piem, "ā" - u'\u0101' ir viens unicode stringa simbols, kaut utf8 kodējumā tie būtu divi.
Nu lūk, rādās, ka ar \x... escape sekvencēm un latviešu burtiem ir problēmas -

Unicode literals can also use the same escape sequences as 8-bit strings, including \x, but \x only takes two hex digits so it can't express an arbitrary code point. Octal escapes can go up to U+01ff, which is octal 777.

Sanāk, ka pieraksts u'\xc4\x93' apzīmē divus kaut kādus unicode simbolus nevis vienu - "ā", un tāpēc arī "print u'\xc4\x93'" izdod kaut kādu ķeburu ne "ā".

Nu un tālāk skaidrs - tu dabū to unikodes stringu tajā \x... pierakstā, un iemāni pitonam kā parastu ne-unikodes stringu, kurā \xc4\x93 ir divi simboli, un no kura var ieenkodēt kā vajag.

Laikam.

Read Comments

Reply:

From:
( )Anonymous- this user has disabled anonymous posting.
Username:
Password:
Subject:
No HTML allowed in subject
  
Message:

Notice! This user has turned on the option that logs your IP address when posting.