Issue loading StreamingAssetsPath with Windows Language set to Turkish

Hey all!

My players have run into an odd issue which basically makes the game fail to load from StreamingAssetsPath when their Windows PC language is set to Turkish. I’m not sure if this issue exists with other languages as well (I tested a few others).

Code Example:

string _assetPath = "localization/" + LocalizationLoader.language.ToString().ToLower() + "/ui";

// This is where it failes (File Exists Check)
        if (File.Exists(Path.Combine(Application.streamingAssetsPath, _assetPath) + ".manifest") == false)
        {
            Debug.Log("LoadUIDialogueObject(), File does not exist");

            return;
        }

        var myLoadedAssetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, _assetPath));
        if (myLoadedAssetBundle == null)
        {
            Debug.Log("Failed to load AssetBundle! " + _assetPath);
        }

Does anyone know of a workaround? I’ve put various print statements and debugged for a bit, and the file structure still looks the same, but for some reason it just doesn’t work properly… Maybe this is a known issue but I haven’t found anything on it.

Thanks!

The lowercase i glyph in Turkic languages seems to be universally problematic, both to Unity and to the Android toolchain in particular. If you google, you will find THOUSANDS of posts where people have a bad directory called “il2cpp” where the i has been replaced by the Turkic i.

The only solution I have seen is to switch to a locale that doesn’t offer this letter.

Maybe an issue with filepaths using Turkish characters in them?
If so then it would be worth a bug report.

Gotcha, yeah after viewing the printouts, the file path still looks like what I would expect (English ‘i’ instead of Turkic ‘i’), so that’s why I’m getting confused as to why it’s not loading properly.