rake test and error : log writing failed. “\xE2” from ASCII-8BIT to UTF-8

前端 未结 3 1062
谎友^
谎友^ 2021-02-19 09:24

When I run rake test, I get error line every time.

log writing failed. \"\\xE2\" from ASCII-8BIT to UTF-8  

Please guide on this.

3条回答
  •  名媛妹妹
    2021-02-19 10:22

    You probably have somewhere in your code trying to output string whose encoding is wrong or has some weird characters and the encoding doesn't work.

    Correct way would be to find the string that results in problems and find out why its in wrong encoding. See encoding and force_encoding in string api (http://ruby-doc.org/core-2.2.0/String.html).

    If you just want to be able to print that line in the log and avoid the error you can do the following procedure with that string.

    str = 'here is some string with wrong encoding and funny characters e.g. "\xE2"'
    # note if you do this in console, the str is encoded correctly
    
    # Rails.logger.info(str) # this would result in the error line
    
    # This will change the encoding and remove weird characters
    str = str.encode('utf-8', :invalid => :replace, :undef => :replace, :replace => '_')
    
    Rails.logger.info(str) # this now works
    

提交回复
热议问题