1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 21:27:24 +08:00
osu-lazer/osu.Game/Database
Dean Herbert c8f7f2215b
Force encoding to Shift-JIS for archive filenames
After way too much time investigating this, the encoding situation is
not great right now.

- Stable sets the "default code page" to be used for encoding filenames
to Shift-JIS (932):
c29ebd7fc5/osu!/GameBase.cs#L3099
- Lazer does nothing (therefore using UTF-8).

When importing to lazer, stable files are assumed to be UTF-8. This
means that the linked beatmaps don't work correctly. Forcing lazer to
decompress *and* compress using Shift-JIS will fix this.

Here's a rough idea of how things look for japanese character filenames
in current `master`:

| | stable | lazer |
|--------|--------|--------|
| export encoding | shift-jis | utf8 |
| utf8 [bit flag](https://superuser.com/a/1507988) set |  |  |
| import stable export osz |   |  |
| import lazer export osz |  |  |
| windows unzip |  |  |
| macos unzip |  |  |

and after this change

| | stable | lazer |
|--------|--------|--------|
| export encoding | shift-jis | shift-jis |
| utf8 [bit flag](https://superuser.com/a/1507988) set |  |  |
| import stable export osz |   |  |
| import lazer export osz |  |  |
| windows unzip |  |  |
| macos unzip |  |  |

A future endeavour to improve compatibility would be to look at setting
the utf8 flag in lazer, switching the default to utf8, and ensuring the
stable supports this flag (I don't believe it does right now).
2024-04-30 01:27:47 +08:00
..
BackgroundDataStoreProcessor.cs Merge pull request #27866 from Joehuu/fix-online-score-export 2024-04-23 09:08:04 +02:00
BeatmapExporter.cs change .osz2 to .olz (osu lazer zip) 2023-07-12 15:04:06 +02:00
BeatmapLookupCache.cs Apply NRT in MemoryCachingComponent subclasses too 2023-06-09 13:47:35 +02:00
EmptyRealmSet.cs Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
ICanAcceptFiles.cs Automated pass 2023-06-24 01:00:03 +09:00
IHasFiles.cs Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
IHasGuidPrimaryKey.cs Automated pass 2023-06-24 01:00:03 +09:00
IHasNamedFiles.cs Automated pass 2023-06-24 01:00:03 +09:00
IHasOnlineID.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IHasPrimaryKey.cs Automated pass 2023-06-24 01:00:03 +09:00
IHasRealmFiles.cs Remove IScoreInfo : IHasNamedFiles inheritance 2023-10-26 14:58:33 +02:00
IModelDownloader.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IModelFileManager.cs Automated pass 2023-06-24 01:00:03 +09:00
IModelImporter.cs Move ImportParameters to better home 2022-12-13 21:41:26 +09:00
IModelManager.cs Automated pass 2023-06-24 01:00:03 +09:00
ImportParameters.cs Fix skin editor freezing game if opened during active gameplay 2023-10-27 14:34:30 +02:00
ImportProgressNotification.cs Partial everything 2022-11-27 00:00:27 +09:00
ImportTask.cs Bring back disposal of stream after copy-out to MemoryStream 2023-09-14 19:36:35 +02:00
INamedFile.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
INamedFileInfo.cs Automated pass 2023-06-24 01:00:03 +09:00
INamedFileUsage.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IPostNotifications.cs Automated pass 2023-06-24 01:00:03 +09:00
ISoftDelete.cs Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
LegacyArchiveExporter.cs Force encoding to Shift-JIS for archive filenames 2024-04-30 01:27:47 +08:00
LegacyBeatmapExporter.cs Fix incorrect legacy conversion when B-splines are used 2023-11-20 15:08:58 +09:00
LegacyBeatmapImporter.cs Fix legacy beatmap importer not always handling nested paths correctly 2023-10-03 16:01:17 +09:00
LegacyCollectionImporter.cs Fix re-importing existing collections not correctly adding new items 2022-08-16 16:43:05 +09:00
LegacyExporter.cs Move lower and xmldoc GetFilename(TModel) 2023-05-06 19:29:08 +02:00
LegacyImportManager.cs Extract common method for determining stable import usability of directory 2023-12-15 15:42:19 +01:00
LegacyModelImporter.cs Move ImportParameters to better home 2022-12-13 21:41:26 +09:00
LegacyScoreExporter.cs Mark exporter extensions as untranslatable 2023-05-06 19:42:28 +02:00
LegacyScoreImporter.cs Path.GetExtension() will not get null 2023-02-19 02:56:53 +09:00
LegacySkinExporter.cs Mark exporter extensions as untranslatable 2023-05-06 19:42:28 +02:00
LegacySkinImporter.cs create a task to export to avoid block main thread 2022-11-17 01:08:06 +09:00
Live.cs Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
MemoryCachingComponent.cs Apply NRT to MemoryCachingComponent classes 2023-06-09 19:00:05 +09:00
MissingBeatmapNotification.cs Fix notification text sets overwriting each other 2023-09-19 11:12:58 +02:00
ModelDownloader.cs Merge branch 'master' into guard-url-protocols 2022-12-16 18:23:16 +09:00
ModelManager.cs Add feedback to delete button even when no-op 2024-02-18 21:52:23 -08:00
OnlineLookupCache.cs Apply NRT to MemoryCachingComponent classes 2023-06-09 19:00:05 +09:00
RealmAccess.cs Use ObjectDisposedException.ThrowIf throw helper 2024-03-05 09:58:46 +01:00
RealmArchiveModelImporter.cs Remove unused method 2024-04-29 18:48:07 +08:00
RealmExtensions.cs Fill out xmldoc and adjust inline commentary 2023-08-16 09:40:46 +02:00
RealmFileStore.cs Reference property via nameof rather than hardcoding 2024-01-09 11:49:42 +01:00
RealmLive.cs Add helper method for safer realm Find<T> 2023-08-16 15:37:09 +09:00
RealmLiveUnmanaged.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
RealmObjectExtensions.cs Remove outdated xmldoc 2023-07-06 22:01:02 +02:00
StandardisedScoreMigrationTools.cs Fix broken english 2024-03-06 21:30:31 +01:00
TooManyDownloadsNotification.cs Partial everything 2022-11-27 00:00:27 +09:00
UserLookupCache.cs Apply NRT to MemoryCachingComponent classes 2023-06-09 19:00:05 +09:00