#include <regex>
#include <random>
#include <functional>
+#include <codecvt>
#if defined(_MSC_VER)
#pragma warning(disable: 4244 4267) // possible loss of data
struct whisper_context * whisper_init_from_file_with_params_no_state(const char * path_model, struct whisper_context_params params) {
WHISPER_LOG_INFO("%s: loading model from '%s'\n", __func__, path_model);
-
+#ifdef _MSC_VER
+ // Convert UTF-8 path to wide string (UTF-16) for Windows, resolving character encoding issues.
+ std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
+ std::wstring path_model_wide = converter.from_bytes(path_model);
+ auto fin = std::ifstream(path_model_wide, std::ios::binary);
+#else
auto fin = std::ifstream(path_model, std::ios::binary);
+#endif
if (!fin) {
WHISPER_LOG_ERROR("%s: failed to open '%s'\n", __func__, path_model);
return nullptr;