### Godot version

v4.0.3.stable.official [5222a99f5]

### System information

win10 21H2,Vulkan API 1.2.0

### Issue description

I'm for use `"Beta: Use Unicode UTF-8 for worldwide language support"`
The file name will display as normal, but `ZIPReader.read_file()` is still garbled

I tried using 7zip Packing files, 
Disable `"Beta: Use Unicode UTF-8 for worldwide language support"` 
Is still displayed normally, but `ZIPReader.read_file()`  is still garbled

![testzip](https://github.com/godotengine/godot/assets/104408400/9f064ed4-a4a5-472d-902d-97a77ba1c79d)


### Steps to reproduce

run node.tscn, look error reporting.

### Minimal reproduction project

[test_zip.zip](https://github.com/godotengine/godot/files/11873912/test_zip.zip)

enc_in_filters.push_back(f);
		}
		Vector<String> enc_ex_split = p_preset->get_enc_ex_filter().split(",");
		for (int i = 0; i < enc_ex_split.size(); i++) {
			String f = enc_ex_split[i].strip_edges();
			if (f.is_empty()) {
				continue;
			}
			enc_ex_filters.push_back(f);
		}
		
		String script_key = _get_script_encryption_key(p_preset);
		key.resize(32);
		if (script_key.length() == 64) {
			for (int i = 0; i < 32; i++) {
				int v = 0;
				if (i * 2 < script_key.length()) {
					char32_t ct = script_key[i * 2];
					if (is_digit(ct)) {
						ct = ct - '0';
					} else if (ct >= 'a' && ct <= 'f') {
						ct = 10 + ct - 'a';
					}
					v |= ct << 4;
				}
				if (i * 2 + 1 < script_key.length()) {
					char32_t ct = script_key[i * 2 + 1];
					if (is_digit(ct)) {
						ct = ct - '0';
					} else if (ct >= 'a' && ct <= 'f') {