#534: CLI (e.g. tahoe cp) does not correctly handle or display Unicode
file/directory names, either in arguments or the local filesystem
-----------------------------------+----------------------------------------
     Reporter:  francois           |       Owner:  francois                     
            
         Type:  defect             |      Status:  new                          
            
     Priority:  major              |   Milestone:  eventually                   
            
    Component:  code-frontend-cli  |     Version:  1.2.0                        
            
   Resolution:                     |    Keywords:  cp unicode filename 
forward-compatibility
Launchpad_bug:                     |  
-----------------------------------+----------------------------------------

Comment(by davidsarah):

 Sigh. I misread the exception message in #734. It is complaining about
 {{{sys.stdout.encoding}}} being None when stdout is redirected, not about
 the input string being None. So the fix for that should be something like

 {{{
 def unicode_to_stdout(s):
     """
     Encode an unicode object for representation on stdout.
     """

     precondition(isinstance(s, unicode), s)

     enc = sys.stdout.encoding
     if enc is None or enc == 'cp65001':
         enc = 'utf-8'

     try:
         return s.encode(enc, 'replace')
     catch LookupError:
         return s.encode('utf-8', 'replace')  # maybe
 }}}

 It might also be a good idea to write a BOM at the start of the output.
 That would allow the encoding to be autodetected if a file containing
 redirected output is edited, which is helpful at least on Windows, and
 should be harmless on other platforms.

 At least I did better at scrabble (won by 3 points :-)

-- 
Ticket URL: <http://allmydata.org/trac/tahoe/ticket/534#comment:79>
tahoe-lafs <http://allmydata.org>
secure decentralized file storage grid
_______________________________________________
tahoe-dev mailing list
[email protected]
http://allmydata.org/cgi-bin/mailman/listinfo/tahoe-dev

Reply via email to