text: Title: Invalid string representation for bytes outside ASCII range
  Body: Currently output from `Should be Equal` as well as `Should Contain` for bytes is not useful.
  
  Consider following tests:
  ```robot
  *** Test Cases ***
  Test Should be Equal
      ${binary1Var} =    Convert To Bytes    \x00\x01\x02\xA0\xB0
      ${binary2Var} =    Convert To Bytes    abc
  
      Should Be Equal    ${binary1Var}    ${binary2Var}
  
  Test Should Contain
      ${binary1Var} =    Convert To Bytes    \x00\x01\x02\xA0\xB0
      ${item} =    Convert To Bytes    \xC0
  
      Should Contain    ${binary1Var}    ${item}
  ```
  output is:
  ```
  ==============================================================================
  Test Should be Equal                                                  | FAIL |
  ☺☻\xa0\xb0 != abc
  ------------------------------------------------------------------------------
  Test Should Contain                                                   | FAIL |
  '☺☻\xa0\xb0' does not contain '\xc0'
  ------------------------------------------------------------------------------
  Test                                                                  | FAIL |
  2 tests, 0 passed, 2 failed
  ==============================================================================
  ```
  
  it would be better to have `b'\x00\x01\x02\xa0\xb0'` instead of `☺☻\xa0\xb0`
  
  inside log some values are invisible:
  ![grafik](https://github.com/robotframework/robotframework/assets/1016654/5fc6098e-7842-43c9-a1fb-9b77671fcfbb)
  