Intereting Posts
Внутренняя ошибка Google Analytics API 500 при создании ссылок AdWords Symfony 2: автогенерируемые навигационные меню mod_rewrite не работает htaccess Валидатор W3C: «Элементная глава не имеет необходимого экземпляра названия дочернего элемента» Пространства имен в PHP, предотвращающие использование статических функций Yii Codeigniter бросает ошибку 520 CloudFlare при использовании сеанса Как использовать метод yii \ base \ model: getAttributes () в Yii? Что делает \ (обратная косая черта) в PHP (5.3+)? Как реализовать MySQLi вложенные подготовленные инструкции? Ввод в таблицу из сложного массива с использованием php Ошибка «Не удалось открыть поток: разрешение отказа» – Laravel PHP короткое замыкание ленивой оценки, где это в руководстве php.net? использование mysql LOAD statment в PHP завершается с ошибкой, но выполнение этого выполняется с помощью командной строки Laravel 3: Ищите объяснение, как использовать модель Сомнения в отношении Yii2 RBAC

Вставка греческого символа в php по сравнению с студией управления SQL-сервером

У меня есть таблица сервера sql:

create table tmp (fname nvarchar(40)) 

У меня есть php-скрипт, который вставляет некоторые греческие символы:

 $cn = sqlsrv_connect(... // insert greek chars sqlsrv_query($cn, "INSERT INTO tmp (fname) VALUES (N'ΚΩΝΣΤΑΝΤΙΝΟΣ')"); // read them back again $rs = sqlsrv_query($cn, "SELECT fname FROM tmp"); $row = sqlsrv_fetch_array($rs, SQLSRV_FETCH_NUMERIC); // output result print "<br />from database: " . $row[0]; sqlsrv_close($cn); 

Это работает как ожидалось (т. Е. Греческий греческий)

Если теперь я использую SQL Server Management Studio (SSMS):

 select * from tmp 

Я получил:

 ΚΩÎΣΤÎ'ÎΤΙÎΟΣ 

Если я вставлю с помощью SSMS:

 delete from tmp INSERT INTO tmp (fname) VALUES (N'ΚΩΝΣΤΑΝΤΙΝΟΣ') select * from tmp 

Я получил:

 ΚΩΝΣΤΑΝΤΙΝΟΣ 

НО, если я получаю доступ к этому из php:

 $cn = sqlsrv_connect(... $rs = sqlsrv_query($cn, "SELECT fname FROM tmp"); $row = sqlsrv_fetch_array($rs, SQLSRV_FETCH_NUMERIC); print "<br />from database: " . $row[0]; sqlsrv_close($cn); 

Я получил:

 ?O?S???????S 

Я пробовал <meta charset="utf-8"> и <meta charset="utf-16"> – не имеет значения.

Итак – два вопроса:

Что здесь происходит?

Как я могу получить согласованность с SSMS и php?

Я использую:

 Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) Oct 19 2012 13:38:57 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) Microsoft SQL Server Management Studio 11.0.2100.60 PHP 5.6.7