[Issue]: NFO isn't parsed as UTF-8 / Special Characters not displayed correctly #4771

Closed
opened 2026-02-07 01:08:41 +03:00 by OVERLORD · 14 comments
Owner

Originally created by @Wortex17 on GitHub (Apr 7, 2023).

Originally assigned to: @Shadowghost on GitHub.

Please describe your bug

I have added some additional metadata via local NFOs (to augment fetcher data, I am not using the NFO saver)
In this case, I added japenese characters to the originaltitle.
These are displayed as question marks in the client.
Note that the japanese characters fetched from the provider e.g. IMDB are displayed fine - this is only an issue when overwritten via local NFOs

Sample:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<tvshow>
  <originaltitle>Acchi Kocchi | あっちこっち</originaltitle>
</tvshow>

Update:
I noticed that when editing the data inside jellyfin metadata editor it works fine. Exporting with NFO saver also works with (albeit, the files charset is OEM-US not UTF-8) but reimporting it again (even though its the same file it exported) will break it again.

Could be confirmable/reproducible via an unit test for export-import with japanese characters or emojis

Jellyfin Version

10.8.0

if other:

No response

Environment

- OS: Synology DSM 7
- Virtualization: Docker
- Clients: Browser
- Browser: Firefox
- FFmpeg Version:
- Playback Method:
- Hardware Acceleration:
- Plugins:
- Reverse Proxy:
- Base URL:
- Networking:
- Storage:

Jellyfin logs

No response

FFmpeg logs

No response

Please attach any browser or client logs here

No response

Please attach any screenshots here

grafik

Code of Conduct

  • I agree to follow this project's Code of Conduct
Originally created by @Wortex17 on GitHub (Apr 7, 2023). Originally assigned to: @Shadowghost on GitHub. ### Please describe your bug I have added some additional metadata via local NFOs (to augment fetcher data, I am not using the NFO saver) In this case, I added japenese characters to the originaltitle. These are displayed as question marks in the client. Note that the japanese characters fetched from the provider e.g. IMDB are displayed fine - this is only an issue when overwritten via local NFOs Sample: ``` <?xml version="1.0" encoding="utf-8" standalone="yes"?> <tvshow> <originaltitle>Acchi Kocchi | あっちこっち</originaltitle> </tvshow> ``` Update: I noticed that when editing the data inside jellyfin metadata editor it works fine. Exporting with NFO saver also works with (albeit, the files charset is OEM-US not UTF-8) but reimporting it again (even though its the same file it exported) will break it again. Could be confirmable/reproducible via an unit test for export-import with japanese characters or emojis ### Jellyfin Version 10.8.0 ### if other: _No response_ ### Environment ```markdown - OS: Synology DSM 7 - Virtualization: Docker - Clients: Browser - Browser: Firefox - FFmpeg Version: - Playback Method: - Hardware Acceleration: - Plugins: - Reverse Proxy: - Base URL: - Networking: - Storage: ``` ### Jellyfin logs _No response_ ### FFmpeg logs _No response_ ### Please attach any browser or client logs here _No response_ ### Please attach any screenshots here ![grafik](https://user-images.githubusercontent.com/170627/230499634-9926f6ea-476a-4bcf-a908-3df23da13456.png) ### Code of Conduct - [X] I agree to follow this project's Code of Conduct
OVERLORD added the bugstale labels 2026-02-07 01:08:41 +03:00
Author
Owner

@jellyfin-bot commented on GitHub (Aug 5, 2023):

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

@jellyfin-bot commented on GitHub (Aug 5, 2023): This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments. If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label. This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on [Matrix or Social Media](https://docs.jellyfin.org/general/getting-help.html).
Author
Owner

@Wortex17 commented on GitHub (Aug 13, 2023):

Still happening

@Wortex17 commented on GitHub (Aug 13, 2023): Still happening
Author
Owner

@helmutheinz commented on GitHub (Sep 24, 2023):

Confirm this bug with Jellyfin on fresh installed Debian Server (DEB-package install, no docker) and editing NFO Files containing german Umlauts (e.g. äöüß). Notepad++ was used as editor and shows encoding OEM-US.

@helmutheinz commented on GitHub (Sep 24, 2023): Confirm this bug with Jellyfin on fresh installed Debian Server (DEB-package install, no docker) and editing NFO Files containing german Umlauts (e.g. äöüß). Notepad++ was used as editor and shows encoding OEM-US.
Author
Owner

@Wortex17 commented on GitHub (Nov 1, 2023):

I can see this was moved to "insufficient data", but no further information was requested - anything we can do to help?

@Wortex17 commented on GitHub (Nov 1, 2023): I can see this was moved to "insufficient data", but no further information was requested - anything we can do to help?
Author
Owner

@felix920506 commented on GitHub (Nov 1, 2023):

We are waiting for a volunteer to test this

@felix920506 commented on GitHub (Nov 1, 2023): We are waiting for a volunteer to test this
Author
Owner

@Wortex17 commented on GitHub (Nov 23, 2023):

I'm sorry if I misunderstand, but test what exactly? I don't see any PR to be tested etc. and while I' offer myself as volunteer, I don't know what data you might need.
Edit: Removed referenc to mising label doc in https://jellyfin.org/docs/general/contributing/issues/#issue-labels as this is not an issue label, but your internal process, my bad.
Still, currently this communicates as "there's nothing you can contribute" and I just wnat to make sure that this is true.

@Wortex17 commented on GitHub (Nov 23, 2023): I'm sorry if I misunderstand, but test what exactly? I don't see any PR to be tested etc. and while I' offer myself as volunteer, I don't know what data you might need. Edit: Removed referenc to mising label doc in https://jellyfin.org/docs/general/contributing/issues/#issue-labels as this is not an issue label, but your internal process, my bad. Still, currently this communicates as "there's nothing you can contribute" and I just wnat to make sure that this is true.
Author
Owner

@Optimus1008 commented on GitHub (Feb 28, 2024):

I just switched to generating nfo files on my server and got the same problem... but since I'm german all umlaute (öäü) and the "Eszett" (ß) get also replaced by a question mark since the current encoding doesn't support these characters... which is a bummer as they appear many times in the German language...

@Optimus1008 commented on GitHub (Feb 28, 2024): I just switched to generating nfo files on my server and got the same problem... but since I'm german all umlaute (öäü) and the "Eszett" (ß) get also replaced by a question mark since the current encoding doesn't support these characters... which is a bummer as they appear many times in the German language...
Author
Owner

@Shadowghost commented on GitHub (Feb 28, 2024):

I did check the server code when the issue was filed and the files should be opened in UTF-8 mode, so not sure what else can be done. I will take a look over the weekend again, maybe I missed something.

@Shadowghost commented on GitHub (Feb 28, 2024): I did check the server code when the issue was filed and the files should be opened in UTF-8 mode, so not sure what else can be done. I will take a look over the weekend again, maybe I missed something.
Author
Owner

@sjorge commented on GitHub (Feb 28, 2024):

I can't reproduce this either, I have a lot of tvshow.nfo hint files for my anime e.g. mine for Acchi Kocchi is

<?xml version="1.0" encoding="utf-8"?>
<tvshow>
  <title>Acchi Kocchi</title>
  <originaltitle>あっちこっち</originaltitle>
  <uniqueid type="anidb" default="true">8890</uniqueid>
  <uniqueid type="anilist" default="false">12291</uniqueid>
  <uniqueid type="tmdb" default="false">63712</uniqueid>
  <premiered>2012-04-06</premiered>
</tvshow>
Screenshot 2024-02-28 at 15 06 49

I wonder if it is because whatever tool/editor write the file did not write it with utf-8 encoding.

@sjorge commented on GitHub (Feb 28, 2024): I can't reproduce this either, I have a lot of tvshow.nfo hint files for my anime e.g. mine for Acchi Kocchi is ```xml <?xml version="1.0" encoding="utf-8"?> <tvshow> <title>Acchi Kocchi</title> <originaltitle>あっちこっち</originaltitle> <uniqueid type="anidb" default="true">8890</uniqueid> <uniqueid type="anilist" default="false">12291</uniqueid> <uniqueid type="tmdb" default="false">63712</uniqueid> <premiered>2012-04-06</premiered> </tvshow> ``` <img width="230" alt="Screenshot 2024-02-28 at 15 06 49" src="https://github.com/jellyfin/jellyfin/assets/379665/9048fb8c-241f-46d4-bb60-9bc9c3c46c72"> I wonder if it is because whatever tool/editor write the file did not write it with utf-8 encoding.
Author
Owner

@Shadowghost commented on GitHub (Feb 28, 2024):

Would be interesting if someone with bad files can check their encoding. If it is wrong, there isn't much we can do.

@Shadowghost commented on GitHub (Feb 28, 2024): Would be interesting if someone with bad files can check their encoding. If it is wrong, there isn't much we can do.
Author
Owner

@Optimus1008 commented on GitHub (Feb 28, 2024):

just deleted all NFOs and let Jellyfin regenerate them... for now, it seems okay, but I'll check again at another time... already checked if, for some reason, any other service (tdarr, sonarr) may cause this, but with no luck... maybe it really was a one-time error... weird nonetheless...

@Optimus1008 commented on GitHub (Feb 28, 2024): just deleted all NFOs and let Jellyfin regenerate them... for now, it seems okay, but I'll check again at another time... already checked if, for some reason, any other service (tdarr, sonarr) may cause this, but with no luck... maybe it really was a one-time error... weird nonetheless...
Author
Owner

@Wortex17 commented on GitHub (Mar 5, 2024):

While trying to reproduce the issue, I noticed that this was likely the cause of my original issue:
https://github.com/notepad-plus-plus/notepad-plus-plus/issues/9153

So it was Notepad++'s fault, as it looked like it saves it as utf8 but never actually does

I'll try to find time to verify the mentioned export+import route, because i didn't document if i had touched the exported nfo with npp in any way in between (I shouldn't have, but lets see)

@Wortex17 commented on GitHub (Mar 5, 2024): While trying to reproduce the issue, I noticed that this was likely the cause of my original issue: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/9153 So it was Notepad++'s fault, as it looked like it saves it as utf8 but never actually does I'll try to find time to verify the mentioned export+import route, because i didn't document if i had touched the exported nfo with npp in any way in between (I shouldn't have, but lets see)
Author
Owner

@jellyfin-bot commented on GitHub (Jul 4, 2024):

This issue has gone 120 days without an update and will be closed within 21 days if there is no new activity. To prevent this issue from being closed, please confirm the issue has not already been fixed by providing updated examples or logs.

If you have any questions you can use one of several ways to contact us.

@jellyfin-bot commented on GitHub (Jul 4, 2024): This issue has gone 120 days without an update and will be closed within 21 days if there is no new activity. To prevent this issue from being closed, please confirm the issue has not already been fixed by providing updated examples or logs. If you have any questions you can use one of several ways to [contact us](https://jellyfin.org/contact).
Author
Owner

@jellyfin-bot commented on GitHub (Jul 25, 2024):

This issue was closed due to inactivity.

@jellyfin-bot commented on GitHub (Jul 25, 2024): This issue was closed due to inactivity.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#4771