• <bdo id='xldrC'></bdo><ul id='xldrC'></ul>
      1. <i id='xldrC'><tr id='xldrC'><dt id='xldrC'><q id='xldrC'><span id='xldrC'><b id='xldrC'><form id='xldrC'><ins id='xldrC'></ins><ul id='xldrC'></ul><sub id='xldrC'></sub></form><legend id='xldrC'></legend><bdo id='xldrC'><pre id='xldrC'><center id='xldrC'></center></pre></bdo></b><th id='xldrC'></th></span></q></dt></tr></i><div id='xldrC'><tfoot id='xldrC'></tfoot><dl id='xldrC'><fieldset id='xldrC'></fieldset></dl></div>

        <legend id='xldrC'><style id='xldrC'><dir id='xldrC'><q id='xldrC'></q></dir></style></legend>

        <small id='xldrC'></small><noframes id='xldrC'>

        <tfoot id='xldrC'></tfoot>

        使用 PHP FreeTDS 扩展从 MSSQL 服务器获取带有 UTF-

        时间:2023-10-03

          <small id='34u8F'></small><noframes id='34u8F'>

              <tfoot id='34u8F'></tfoot>
                <legend id='34u8F'><style id='34u8F'><dir id='34u8F'><q id='34u8F'></q></dir></style></legend>
                <i id='34u8F'><tr id='34u8F'><dt id='34u8F'><q id='34u8F'><span id='34u8F'><b id='34u8F'><form id='34u8F'><ins id='34u8F'></ins><ul id='34u8F'></ul><sub id='34u8F'></sub></form><legend id='34u8F'></legend><bdo id='34u8F'><pre id='34u8F'><center id='34u8F'></center></pre></bdo></b><th id='34u8F'></th></span></q></dt></tr></i><div id='34u8F'><tfoot id='34u8F'></tfoot><dl id='34u8F'><fieldset id='34u8F'></fieldset></dl></div>
                  <tbody id='34u8F'></tbody>
                  <bdo id='34u8F'></bdo><ul id='34u8F'></ul>

                • 本文介绍了使用 PHP FreeTDS 扩展从 MSSQL 服务器获取带有 UTF-8 字符集的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我似乎无法使用 FreeTDS 扩展从 MSSQL 中获取编码为 UTF-8 的数据.

                  I can't seem to get data from MSSQL encoded as UTF-8 using FreeTDS extension.

                  连接:

                  ini_set('mssql.charset', 'UTF-8');
                  $this->_resource = mssql_connect($config['servername'], $config['username'], $config['password']);
                  

                  我无法使用任何其他扩展程序.

                  I have no ability to use any other extension.

                  我试过创建 ~/.freetds.conf

                  I've tried creating ~/.freetds.conf

                  [global]
                  client charset = UTF-8
                  

                  我试过向 php 传递参数:

                  I've tried passing parameters to php:

                  php -d mssql.charset="UTF-8" index.php
                  

                  数据仍然不是 UTF-8.

                  Data is still not in UTF-8.

                  php -i

                  mssql
                  
                  MSSQL Support => enabled
                  Active Persistent Links => 0
                  Active Links => 0
                  Library version => FreeTDS
                  
                  Directive => Local Value => Master Value
                  mssql.allow_persistent => On => On
                  mssql.batchsize => 0 => 0
                  mssql.charset => no value => no value
                  mssql.compatability_mode => Off => Off
                  mssql.connect_timeout => 5 => 5
                  mssql.datetimeconvert => On => On
                  mssql.max_links => Unlimited => Unlimited
                  mssql.max_persistent => Unlimited => Unlimited
                  

                  想法?

                  推荐答案

                  MSSQL 和 UTF-8 在……有时是相当痛苦的.我不得不手动转换它.问题:MSSQL 实际上并不知道和支持 UTF-8.

                  MSSQL and UTF-8 are quite a pain in the ... sometimes. I had to convert it manually. The problem: MSSQL doesn't actually know and support UTF-8.

                  从数据库值转换为 UTF-8:

                  Convert from database value to UTF-8:

                  mb_detect_encoding($value, mb_detect_order(), true) === 'UTF-8' ? $value : mb_convert_encoding($value, 'UTF-8');
                  

                  从 UTF-8 转换为数据库值:

                  Converting from UTF-8 to database value:

                  mb_convert_encoding($value, 'UCS-2LE', mb_detect_encoding($value, mb_detect_order(), true));
                  

                  幸运的是我使用了 Doctrine,所以我所要做的就是创建一个自定义的 StringType 实现.

                  Fortunately I was using Doctrine so all I had was to create a custom StringType implementation.

                  这篇关于使用 PHP FreeTDS 扩展从 MSSQL 服务器获取带有 UTF-8 字符集的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:带有 utf-8 的 php substr() 函数在末尾留下 标记 下一篇:PHP str_word_count() 多字节安全吗?

                  相关文章

                  最新文章

                    <bdo id='cQZSX'></bdo><ul id='cQZSX'></ul>
                  <legend id='cQZSX'><style id='cQZSX'><dir id='cQZSX'><q id='cQZSX'></q></dir></style></legend>

                    <small id='cQZSX'></small><noframes id='cQZSX'>

                  1. <i id='cQZSX'><tr id='cQZSX'><dt id='cQZSX'><q id='cQZSX'><span id='cQZSX'><b id='cQZSX'><form id='cQZSX'><ins id='cQZSX'></ins><ul id='cQZSX'></ul><sub id='cQZSX'></sub></form><legend id='cQZSX'></legend><bdo id='cQZSX'><pre id='cQZSX'><center id='cQZSX'></center></pre></bdo></b><th id='cQZSX'></th></span></q></dt></tr></i><div id='cQZSX'><tfoot id='cQZSX'></tfoot><dl id='cQZSX'><fieldset id='cQZSX'></fieldset></dl></div>

                  2. <tfoot id='cQZSX'></tfoot>