mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-12 02:24:21 -05:00
Labels Not Displaying Emoji After Database Import #9509
Open
opened 2025-11-02 08:41:12 -06:00 by GiteaMirror
·
12 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#9509
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Deadmano on GitHub (Sep 4, 2022).
Description
After migrating servers, and importing the Gitea database, existing labels have not retained their emoji, and instead show
?in the place of unicode emoji. I have checked the database to ensure the collation is correct and that it is usingutf8mb4_unicode_ci.This only effects existing emoji in labels, but if I create a new set of labels they both display and store correctly.
How can this issue be resolved? How can I have all the existing emoji display correctly again? Is there a task that can be run?
Screenshots
Gitea Version
1.17.1
Can you reproduce the bug on the Gitea demo site?
No
Operating System
Windows 10
Browser Version
Firefox 102
@Deadmano commented on GitHub (Sep 4, 2022):
And this is how they should look like, which they do currently, but not with existing ones that were imported.

@Deadmano commented on GitHub (Sep 4, 2022):
@zeripath / @lunny based on #6992 is it possible that either of you may know what is going on here?
@zeripath commented on GitHub (Sep 4, 2022):
Which database are you running?
What collation is it in?
I suspect that you're running mssql in a non-unicode collation.
It has to be a unicode collation.
@Deadmano commented on GitHub (Sep 4, 2022):
It's MySQL 8.0. The database is
utf8mb4with collationutf8mb4_unicode_ci. I've not had any issues using emoji prior, it issimply when transferring to a new machine and importing the SQL database
backup that this happens. And I checked that it was imported in the correct
collation as well.
Happy to check anything else that may resolve this issue, as there are
quite a few labels that would need correcting.
On Sun, 4 Sep 2022, 13:19 zeripath, @.***> wrote:
@zeripath commented on GitHub (Sep 4, 2022):
I guess you need to find out if these characters are
?in the dB or if the problem is between the dB and Gitea.I suspect that the issue is that they have been incorrectly imported into your db and they are now
?in the dB.If they're correct in the dB then take a look at your charset setting in the database section of the app.ini make sure that's utf8mb4
@Deadmano commented on GitHub (Sep 5, 2022):
@zeripath they indeed do display as
?characters in the database... So that means it must have been something in the import that went wrong. The charset is definitelyutf8mb4in theapp.ini.This is the command I used to restore the database, minus of course all the connection bits:
mysql --default-character-set=utf8mb4 --database=gitea < "gitea.sql"Do you perhaps see anything that I may have missed? Since I know initially I had to update the charset/collation to get Gitea to work properly with Unicode, but that seems to have stuck around since I am able to create labels with Unicode and use them just fine.
@lunny commented on GitHub (Sep 5, 2022):
So they are not
?in the old database? Every table may also have different collation from database.@Deadmano commented on GitHub (Sep 5, 2022):
@lunny they were not, no. But upon importing them they were. I know Gitea doesn't by default handle
utf8mb4but I do believe this is now outside of the scope and I'll have to figure out where the import process when wrong. This may be somewhat useful for future reference, as a direct import is not quite possible, despite setting the correct default collation. I may need to look into re-creating the structure, at least for the labels, ahead of time, before importing?@Deadmano commented on GitHub (Sep 5, 2022):
Just to update, @lunny and @zeripath, turns out Gitea's dump using the command
./gitea dump -c /path/to/app.inidoes not preserve the collation and all Unicode characters end up being transformed as?. So I guess this issue would be;Add Unicode Support To Database Backups. I wish I had known that beforehand, and before wiping the previous install. It seems there is no way to recover from this.@Deadmano commented on GitHub (Sep 5, 2022):
In case anyone else stumbles upon this in the interim, I managed to work around this for future use by utilising
mysqldump.mysqldump --user="" --password="" --default-character-set=utf8mb4 gitea --result-file=".\gitea.sql"This gave a proper output preserving the unicode characters.
@zeripath commented on GitHub (Sep 5, 2022):
This is strange because
gitea dumpdoes nothing different from that of Gitea itself - so if Gitea could read the characters the dump should have.From what version of Gitea did you make your dump?
@Deadmano commented on GitHub (Sep 5, 2022):
It was on 1.17's RC, recently updated to
1.17.1. Gitea could only read the characters because the database collation and default character set needed to be changed/updated manually by me, to supportutf8mb4as well asutf8mb4_unicode_cicollation on the relevant columns, as the default setup by Gitea only usedutf8without extended unicode support.I can confirm that the backup dump done via
gitea dumpdoes indeed strip the Unicode characters and leave?in their place.I'm not sure how
gitea dumpworks exactly, but if there would be a way to set a default character set like I had to do for MySQL above usingmysqldumpthat would be a much better option, as right now the backup is pretty much pointless since restoring it will display?in the place of Unicode characters such as emoji.