Repository: godot
Issue: Unable to get file from archive due to ZIPReader.get_files()
Labels: bug,topic:core,documentation

### Tested versions

- Reproducible in: v4.3.dev6.official [89850d553], v4.2.1.stable.official [b09f793f5] and later 4.2.1 snapshots.

### System information

Windows 10 - Godot Engine v4.3.dev6.official.89850d553

### Issue description

It is not possible to obtain the necessary files from the archive.

When using ZIPReader.get_files(), if the file names in the archive contain ANSI characters, they are replaced with �.
This leads to the fact that if the archive contains files whose names differ only in ANSI characters, then only the first file can be opened.
The second and subsequent archive files are not opened, instead the first file is opened again (because get_files() resolves the unique name to ����.txt).

The issue could be circumvented if it were possible to obtain the file names as a byte array.
Something like ZIPReader.get_files_byte_array()

When the conditions described below are met, I expected the result to be as follows if everything worked correctly:

> ТестА.txt -> Text in file 1
> ТестБ.txt -> Text in file 2

### Steps to reproduce

1. Create a new project
2. Create a user interface scene (with a Control node as root)
3. Attach the following script to the Control
4. Create a file ТестА.txt with the text: "Text in file 1"
5. Create a file ТестБ.txt with the text: "Text in file 2"
6. Add ТестА.txt and ТестБ.txt to the Test.zip archive
7. Copy the archive to the project root
8. Run project.

```gdscript
extends Control


# Called when the node enters the scene tree for the first time.
func _ready() -> void:
	var zip = ZIPReader.new()
	if zip.open("res://Test.zip") == OK:
		for file_name in zip.get_files():
			var zip_file = zip.read_file(file_name)
			printerr(file_name, " -> ", zip_file.get_string_from_utf8())


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
	pass

```


Output:

> Godot Engine v4.3.dev6.official.89850d553 - https://godotengine.org
> OpenGL API 3.3.0 NVIDIA 537.58 - Compatibility - Using Device: NVIDIA - NVIDIA GeForce RTX 4090 Laptop GPU
> 
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (92)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (a5)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 continuation byte (e1 ... e2 ...)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (80)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (92)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (a5)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 continuation byte (e1 ... e2 ...)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (81)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (92)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (a5)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 continuation byte (e1 ... e2 ...)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (80)
>   ����.txt -> Text in file 1
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (92)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (a5)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 continuation byte (e1 ... e2 ...)
>   Unicode parsing error, some characters were replaced with � (U+FFFD): Invalid UTF-8 leading byte (80)
>   ����.txt -> Text in file 1
> --- Debugging process stopped ---



### Minimal reproduction project (MRP)

[Test_get_files.zip](https://github.com/godotengine/godot/files/15465856/Test_get_files.zip)