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

UnicodeDecodeError #332

Open
walmartshopper opened this issue Jan 7, 2016 · 5 comments
Open

UnicodeDecodeError #332

walmartshopper opened this issue Jan 7, 2016 · 5 comments

Comments

@walmartshopper
Copy link

I am trying to run the master branch on Arch Linux. When I run python2.7 -m ice I get the following output:

=========== Starting Ice ===========
Detected Emulator: Dolphin
Detected Console: Nintendo Wii => Dolphin
=========== User: 37281274 ===========
[ERROR] An exception occurred while running Ice
Traceback (most recent call last):
File "ice/runners/ice_engine.py", line 153, in run
self.main(dry_run=dry_run)
File "ice/runners/ice_engine.py", line 133, in main
self.run_for_user(user_context, dry_run=dry_run)
File "ice/runners/ice_engine.py", line 145, in run_for_user
self._create_backup(user, dry_run=dry_run)
File "ice/runners/ice_engine.py", line 167, in _create_backup
shortcuts.write_shortcuts(backup_path, shortcuts.get_shortcuts(user))
File "/usr/lib/python2.7/site-packages/pysteam-1.0.0b2-py2.7.egg/pysteam/shortcuts.py", line 30, in write_shortcuts
vdf_contents = ShortcutGenerator().to_string(shortcuts)
File "/usr/lib/python2.7/site-packages/pysteam-1.0.0b2-py2.7.egg/pysteam/_shortcut_generator.py", line 20, in to_string
string = x00 + 'shortcuts' + x00 + self.generate_array_string(shortcuts) + x08 + x08 + x0a
File "/usr/lib/python2.7/site-packages/pysteam-1.0.0b2-py2.7.egg/pysteam/_shortcut_generator.py", line 29, in generate_array_string
string += x00 + str(i) + x00 + self.generate_shortcut_string(shortcut)
File "/usr/lib/python2.7/site-packages/pysteam-1.0.0b2-py2.7.egg/pysteam/_shortcut_generator.py", line 37, in generate_shortcut_string
string += self.generate_keyvalue_pair("icon",shortcut.icon)
File "/usr/lib/python2.7/site-packages/pysteam-1.0.0b2-py2.7.egg/pysteam/_shortcut_generator.py", line 52, in generate_keyvalue_pair
return x01 + key + x00 + value + (x00 if more else x08)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x84 in position 109: ordinal not in range(128)

Close the window, or hit enter to exit...

These are all my rom file names, nothing non-ascii in them:

/s/games/wii/roms/Skyward Sword.iso
/s/games/wii/roms/DKCR.iso
/s/games/wii/roms/Mario Galaxy.iso
/s/games/wii/roms/Metroid Prime 3 Corruption.iso
/s/games/wii/roms/Goldeneye 007.iso
/s/games/wii/roms/Mario Galaxy 2.iso
/s/games/wii/roms/Twilight Princess.iso

@nico-knabe
Copy link

I have the same problem on windows 7 and my snes roms. I run the master branch, too.

2016-01-09 13:14:05,956 [DEBUG][steam_shortcut_synchronizer.py][sync_roms_for_user:99]: Saving shortcuts
2016-01-09 13:14:05,957 [ERROR][ice_engine.py][run:155]: An exception occurred while running Ice
Traceback (most recent call last):
File "ice\runners\ice_engine.py", line 153, in run
self.main(dry_run=dry_run)
File "ice\runners\ice_engine.py", line 133, in main
self.run_for_user(user_context, dry_run=dry_run)
File "ice\runners\ice_engine.py", line 148, in run_for_user
self.shortcut_synchronizer.sync_roms_for_user(user, roms, self.config, dry_run=dry_run)
File "ice\steam_shortcut_synchronizer.py", line 100, in sync_roms_for_user
shortcuts.set_shortcuts(user, updated_shortcuts)
File "C:\Python27\lib\site-packages\pysteam-1.0.0b2-py2.7.egg\pysteam\shortcuts.py", line 41, in set_shortcuts
write_shortcuts(paths.shortcuts_path(user_context), shortcuts)
File "C:\Python27\lib\site-packages\pysteam-1.0.0b2-py2.7.egg\pysteam\shortcuts.py", line 30, in write_shortcuts
vdf_contents = ShortcutGenerator().to_string(shortcuts)
File "C:\Python27\lib\site-packages\pysteam-1.0.0b2-py2.7.egg\pysteam_shortcut_generator.py", line 20, in to_string
string = x00 + 'shortcuts' + x00 + self.generate_array_string(shortcuts) + x08 + x08 + x0a
File "C:\Python27\lib\site-packages\pysteam-1.0.0b2-py2.7.egg\pysteam_shortcut_generator.py", line 29, in generate_array_string
string += x00 + str(i) + x00 + self.generate_shortcut_string(shortcut)
File "C:\Python27\lib\site-packages\pysteam-1.0.0b2-py2.7.egg\pysteam_shortcut_generator.py", line 35, in generate_shortcut_string
string += self.generate_keyvalue_pair("Exe",shortcut.exe)
File "C:\Python27\lib\site-packages\pysteam-1.0.0b2-py2.7.egg\pysteam_shortcut_generator.py", line 52, in generate_keyvalue_pair
return x01 + key + x00 + value + (x00 if more else x08)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 92: ordinal not in range(128)

@mdeguzis
Copy link

Same issue here on Debian/SteamOS. Glad to know it's not the Debian package I made specifically.

My error:

[ERROR] An exception occurred while running Ice
Traceback (most recent call last):
  File "ice/decorators.py", line 9, in wrapped
    func(*args, **kwargs)
  File "ice/runners/ice_engine.py", line 131, in run
    self.create_backup(user, dry_run=dry_run)
  File "ice/runners/ice_engine.py", line 104, in create_backup
    backups.create_backup_of_shortcuts(self.config, user)
  File "ice/backups.py", line 67, in create_backup_of_shortcuts
    shortcuts.write_shortcuts(backup_path, shortcuts.get_shortcuts(user))
  File "/usr/lib/python2.7/dist-packages/pysteam/shortcuts.py", line 30, in write_shortcuts
    vdf_contents = ShortcutGenerator().to_string(shortcuts)
  File "/usr/lib/python2.7/dist-packages/pysteam/_shortcut_generator.py", line 20, in to_string
    string = x00 + 'shortcuts' + x00 + self.generate_array_string(shortcuts) + x08 + x08 + x0a
  File "/usr/lib/python2.7/dist-packages/pysteam/_shortcut_generator.py", line 29, in generate_array_string
    string += x00 + str(i) + x00 + self.generate_shortcut_string(shortcut)
  File "/usr/lib/python2.7/dist-packages/pysteam/_shortcut_generator.py", line 37, in generate_shortcut_string
    string += self.generate_keyvalue_pair("icon",shortcut.icon)
  File "/usr/lib/python2.7/dist-packages/pysteam/_shortcut_generator.py", line 52, in generate_keyvalue_pair
    return x01 + key + x00 + value + (x00 if more else x08)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 60: ordinal not in range(128)

@Ryochan7
Copy link

This is an issue with pysteam. I encountered this problem as well and made an issue about it. One thing to mention right away is that, since Ice has to re-create the shortcuts.vdf file, this problem could occur due to a non-Steam app shortcut that you have created; your ROMs might not be causing the problem. The problem for me was due to a custom non-Steam app shortcut for the game Star Wars: Dark Forces. In my case, a Registered Sign symbol (U+00AE) is used in the game name (STAR WARS®: Dark Forces).

scottrice/pysteam#7

Unicode Character 'REGISTERED SIGN' (U+00AE)

http://www.fileformat.info/info/unicode/char/00ae/index.htm

@mdeguzis
Copy link

Thank you very much @Ryochan7. This explains why I didn't get this before as it was likely a clean install still needs fixed, but I'll do a clean install soon to confirm. I'll susbcribe to the issue you linked. I had thought my pysteam packaging was wrong, as it worked before. I actually debianized all the pypi packages per the required versuons, using py2dsc.

@mdeguzis
Copy link

I'll test this PR you made with my fork.

@Ryochan7 @scottrice , the fix Ryochan proposed was actually kind of implemented in an old commit (b1b1f08), when the structure of Ice was a bit different. Looks like the change never migrated, or was deemed not necessary.

Update:

PR fix by @Ryochan7 does indeed work. Just tested this now against my SteamOS package. I patched it into my fork.

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

4 participants