mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-18 22:22:24 -05:00
Arabic text shows as question marks (?) #5661
Closed
opened 2025-11-02 06:32:15 -06:00 by GiteaMirror
·
20 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
No Label
type/enhancement
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#5661
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 @zuhairamahdi on GitHub (Jun 30, 2020).
[x]):Description
Hi,
we just noticed that when we create a new issue or pull request all the Arabic text transforms to question marks.
I think that we can fix this by changing the database from
varcharto benvarcharin MS SQL.Screenshots
@zeripath commented on GitHub (Jun 30, 2020):
This is going to be a problem with your database collation and character set
@zuhairamahdi commented on GitHub (Jul 6, 2020):
@zeripath
it is a problem with the type in MS SQL as
varchardoesn't include Arabic characters and need to be replaced to benvarchar@zeripath commented on GitHub (Jul 6, 2020):
OK as a holding measure whilst we think about this:
https://docs.microsoft.com/en-us/sql/t-sql/data-types/char-and-varchar-transact-sql?view=sql-server-ver15#remarks
AFAICS You can set the collation to a UTF-8 collation to make varchar and nvarchar essentially the same.
My concern with migrating to use NVARCHAR is that we're essentially doubling the size of our data when setting the collation properly would allow better encodings to be used by the db.
@lunny what are your thoughts?
@lunny commented on GitHub (Jul 7, 2020):
In fact I have ever thought xorm should provide an option to consider
VARCHARisNVARCHAR, but I don't know if anyone need that. Maybe it's the answer of this issue?@LukeOwlclaw commented on GitHub (Jul 9, 2020):
We are having the same issue for emoticons. They become ??
This problem cannot be reproduced on https://try.gitea.io/Luke2/Repo2/pulls/1
What kind of database is try.gitea.io using?
@zeripath commented on GitHub (Jul 9, 2020):
@LukeOwlclaw what database are you using? If, as I suspect, you are using MySQL in which you need to change to use utf8mb4 as the default charset and use
gitea convertto convert your database from utf8 to utf8mb4.@zuhairamahdi did changing the collation to a UTF8 enabled collation solve your problem?
@zuhairamahdi commented on GitHub (Jul 12, 2020):
I don't think it is possible to change the collation to UTF-8 as we use SQL Server 2012 not 2019

though there is a long list of collation to use which break the data if we selected Arabic:
@zeripath commented on GitHub (Jul 12, 2020):
Googling I think you might want to try:
Latin1_General_100_CI_AI_SC@LukeOwlclaw commented on GitHub (Jul 13, 2020):
@zeripath We are using SQL Server 2016. So we are facing the same problem as @zuhairamahdi.
@zuhairamahdi commented on GitHub (Jul 13, 2020):
I tried it in an instance in my local environment and did not fix the issue
@zeripath commented on GitHub (Jul 13, 2020):
OK, I think we need to add an option to https://gitea.com/xorm/xorm to allow us to default to nvarchar as required. Looking at
engine.Sync2I think if you change your columns to NVARCHAR manually that xorm would just deal with it without changing them back or complaining too loud.Of course - make a backup before you do this.
@PaulBol commented on GitHub (Jul 14, 2020):
I did a quick test and changed the data type for comments with
Everything worked fine afterwards. I'm only not sure if the change might interfere with a future database update.
For us this change seems sufficient. We want to keep things like issue titles, user names and release notes in plain English. So there's little reason to encourage users to include fancy characters. In other cases using UTF-16 makes little sense like for (commit) hashes, email addresses and access tokens.
If helpful for anyone, here's a T-SQL command for generating a script for converting all
varcharcolumns tonvarchar. But I'm not in a position to tell if applying it blindly is a good idea.@zuhairamahdi commented on GitHub (Jul 14, 2020):
Thanks @PaulBol

it actually worked:
hope that there is a way to do it automatically rather than going manually and inspecting the tables if there is a column that need to be changed from
varchartonvarchar@PaulBol commented on GitHub (Jul 16, 2020):
Note that the
SELECT 'ALTER TABLE ...command that I shared above does this. But it will create a script that changes everyvarcharcolumn which is not needed. E.g. for columns storing commit hashes with only characters [0-9a-f].@lunny commented on GitHub (Jul 16, 2020):
I have said that. I think xorm should provide a special option for MSSQL
Then all new columns will be created with
nvarchareven if the tag on field of struct are blank orVARCHAR.Of course, for existance columns, you have to convert them manually like above.
@zeripath commented on GitHub (Jul 16, 2020):
So I've looked at using that SQL and putting it directly in to a gitea convert command - but unfortunately it would require the constraints to be dropped and readded over time.
@lunny commented on GitHub (Jul 18, 2020):
I have sent a PR to xorm and will send a PR to gitea after that merged. Please review https://gitea.com/xorm/xorm/pulls/1741
@lunny commented on GitHub (Jul 19, 2020):
I have sent a PR #12269 to try to resolve this issue.
@zuhairamahdi commented on GitHub (Jul 19, 2020):
thanks @lunny will this change current columns already in the database? or it will work only for new instances?
@lunny commented on GitHub (Jul 19, 2020):
@zuhairamahdi It's only for new instance or new column on exist instance. You have to convert old column manually.