我在尝试在PHP网页中显示ntext MS SQL Server字段时遇到问题。
数据库中的字段存储带有所有标记的HTML格式文档。
数据库MS SQL 2012,其排序规则设置为Latin1_General_CI_AS
,字段类型为ntext
HTML页面的编码元标记设置为UTF8
<meta charset="UTF-8">
PHP有以下内容尝试去除标记。
$note2 = odbc_result($result, data2);
$note2 = mb_convert_encoding($note2, 'UTF-8', 'Latin1_General_CI_AS');
$note2 = strip_tags($note2, "<br><p>");
echo trim($note2);
我得到了奇怪且不一致的结果 例如,实际文本的后半部分被其他一些文本替换,这些文本可能包含SQL代码或类似的警告消息。
有趣的是,依靠系统的时区是不安全的 设置。 Plep! “T”«T。时区设置,TÙìèÕìment变量 oe date_d fault_timezone_set()函数。在càYìÙìù0天,1 小时,16分钟得到这个可能错误拼写了 时区标识符。我们选择'欧洲/伦敦'作为'1.0 / DST' 而不是T'«TÉ0±±ÜìL{ÈNì~üa'ÐÜìCâÉ
我已经尝试CAST(myntextfield AS TEXT) AS mytextfield
但是这改变了我的返回文本,因此它只返回了消息的后半部分,所以这不好。
问题发生在文本中的4000个字符,我不知道是否有意义。我在php.ini文件中将两个值mssql.textlimit
和mssql.textsize
设置为65000。
答案 0 :(得分:0)
我现在找到了答案,我需要在php.ini文件中设置odbc.defaultlrl
值,我的数据库连接是ODBC连接。