У меня установлен мой сервер Windows в турецком языке. Моя Firebird DB существует на пути, который включает в себя турецкие символы. Это то, что мое соединение жала выглядит следующим образом:Соединение Firebird с использованием символов, отличных от ASCII, в пути
"user id=somename;password=somepwd;max pool size=200;min pool size=8;
connection lifetime=120000;
initial catalog=E:\\Açğıİîöşüûin\\Metabase\\metabase.fdb;port number=3050;
data source=127.0.0.1;server type=Default;packet size=8192;charset=UTF8;"
Я использую FirebirdClient в C# для подключения
Когда я пытаюсь открыть, я получаю это исключение:
«ошибка ввода/вывода во время \ "CreateFile (открытый) \" операции для файла \ "E: \ AgiIsin \ Metabase \ metabase.fdb \" \ г \ nНомер ошибка при попытке открыть файл »
Если турецкая часть имени ANSI, DB open отлично работает.
Любые идеи, если это возможно, чтобы заставить FB уважать турецкое название пути? Можно ли использовать имя пути, содержащее ничего, кроме символов ANSI (например, кириллица, арабский, UNICODE, UTF8)?
FB версия 2.5.2
Какая версия Firebird и какая Firebird ado.версию сетевого провайдера вы используете? –
https://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx Турецкий язык имеет разные кодовые страницы ANSI и OEM. Windows по умолчанию назначает кодовые страницы OEM для неграфических приложений, таких как Firebird Server. С обычным приложением Win32 я предполагаю, что вы можете предварительно перекодировать путь ANSI-> OEM, но с приложениями DotNet, используя строки UTF-16, я думаю, что такой опции нет ... Возможно, вы можете попробовать загрузить источники FirebirdClient и взломать этот хакер в него и посмотреть, будет ли это работать –
Я использую FB 2.5.2 – user7399006