mirror of
https://github.com/python/cpython.git
synced 2025-08-30 05:35:08 +00:00
bpo-13153: Use OS native encoding for converting between Python and Tcl. (GH-16545)
On Windows use UTF-16 (or UTF-32 for 32-bit Tcl_UniChar) with the "surrogatepass" error handler for converting to/from Tcl Unicode objects. On Linux use UTF-8 with the "surrogateescape" error handler for converting to/from Tcl String objects. Converting strings from Tcl to Python and back now never fails (except MemoryError).
This commit is contained in:
parent
2290b23dfc
commit
06cb94bc84
9 changed files with 241 additions and 242 deletions
|
@ -429,9 +429,12 @@ class TclTest(unittest.TestCase):
|
|||
self.assertEqual(passValue(False), False if self.wantobjects else '0')
|
||||
self.assertEqual(passValue('string'), 'string')
|
||||
self.assertEqual(passValue('string\u20ac'), 'string\u20ac')
|
||||
self.assertEqual(passValue('string\U0001f4bb'), 'string\U0001f4bb')
|
||||
self.assertEqual(passValue('str\x00ing'), 'str\x00ing')
|
||||
self.assertEqual(passValue('str\x00ing\xbd'), 'str\x00ing\xbd')
|
||||
self.assertEqual(passValue('str\x00ing\u20ac'), 'str\x00ing\u20ac')
|
||||
self.assertEqual(passValue('str\x00ing\U0001f4bb'),
|
||||
'str\x00ing\U0001f4bb')
|
||||
self.assertEqual(passValue(b'str\x00ing'),
|
||||
b'str\x00ing' if self.wantobjects else 'str\x00ing')
|
||||
self.assertEqual(passValue(b'str\xc0\x80ing'),
|
||||
|
@ -490,6 +493,7 @@ class TclTest(unittest.TestCase):
|
|||
check('string')
|
||||
check('string\xbd')
|
||||
check('string\u20ac')
|
||||
check('string\U0001f4bb')
|
||||
check('')
|
||||
check(b'string', 'string')
|
||||
check(b'string\xe2\x82\xac', 'string\xe2\x82\xac')
|
||||
|
@ -531,6 +535,7 @@ class TclTest(unittest.TestCase):
|
|||
('a\n b\t\r c\n ', ('a', 'b', 'c')),
|
||||
(b'a\n b\t\r c\n ', ('a', 'b', 'c')),
|
||||
('a \u20ac', ('a', '\u20ac')),
|
||||
('a \U0001f4bb', ('a', '\U0001f4bb')),
|
||||
(b'a \xe2\x82\xac', ('a', '\u20ac')),
|
||||
(b'a\xc0\x80b c\xc0\x80d', ('a\x00b', 'c\x00d')),
|
||||
('a {b c}', ('a', 'b c')),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue