Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UnicodeEncodeError from kart conflict. Unable to see what are the conflicts. #977

Open
afrigeri opened this issue Apr 9, 2024 · 2 comments

Comments

@afrigeri
Copy link

afrigeri commented Apr 9, 2024

Describe the bug
Hello, kart conflicts for a project returns a UnicodeEncodeError:. The error is reported in both the QGIS plugin and also from the command line.

The repo is shared between Austrian and Italian users.

To Reproduce
Steps to reproduce the behaviour: kart conflicts

Expected behaviour

The list of conflicts is not reported, the user is unable to know which is/are the conflicts.

Output

from the command line:

$ kart conflicts
Traceback (most recent call last):
  File "kart_cli.py", line 4, in <module>
  File "kart\cli.py", line 410, in entrypoint
  File "click\core.py", line 1157, in __call__
  File "click\core.py", line 1078, in main
  File "kart\cli_util.py", line 72, in invoke
  File "click\core.py", line 1688, in invoke
  File "click\core.py", line 1434, in invoke
  File "click\core.py", line 783, in invoke
  File "click\decorators.py", line 34, in new_func
  File "kart\conflicts.py", line 89, in conflicts
  File "kart\conflicts_writer.py", line 246, in write_conflicts
  File "click\termui.py", line 634, in secho
  File "click\utils.py", line 318, in echo
  File "encodings\cp1252.py", line 19, in encode
UnicodeEncodeError: 'charmap' codec can't encode character '\u2400' in position 430: character maps to <undefined>
[20872] Failed to execute script 'kart_cli' due to unhandled exception!

Version Info

  • OS: Windows and OSX
  • Version: --
@olsen232
Copy link
Collaborator

olsen232 commented Apr 9, 2024

Kart uses U+2400 Symbol for Null - - character to indicate a null value - it assumes it's running in an environment where unicode is supported. There may be other unicode characters elsewhere in Kart or in user-data that Kart outputs.
Until and unless we make a Kart option to limit character output to ASCII (if there is sufficient interest), the workaround would have to be modify the environment so that it supports unicode.

Looking around online, the following may help add unicode support to your command line environment:

Let me know if this helps. Which terminal you are using on either platform may be relevant.

@afrigeri
Copy link
Author

Thanks @olsen232 - that is very informative.

The error came from git-shell on windows and on the QGIS plugin. The UnicodeEncodeError was blocking the conflict display - but we turn around the problem by listing summaries of the conflicts with kart conflicts -s and solving them one by one.

Today we tried to reproduce the 'NUL' conflict but we were not able to do it. Next time we face that problem we will first try to align the environment (Windows or OSX shell) to utf-8 with the step you suggested (and report here the solution).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants