首页 >后端开发 >php教程 >PHP使用Access数据库使用iconv导字符截断的问题

PHP使用Access数据库使用iconv导字符截断的问题

WBOY
WBOY原创
2016-06-23 13:53:021158浏览

1.使用iconv导字符截断

<?phpheader("content-type:text/html;charset=utf-8");include 'conn.php'; $query=odbc_do($conn,"select top 10 id,biaoti from news ");//$num = 0;while(odbc_fetch_row($query)){?><a href="View.php?id=<?=odbc_result($query,1)?>"><?=iconv('gbk','utf-8//ignore',odbc_result($query,2))?></a><?phpecho "<br>";}?>


回复讨论(解决方案)

2. php读取access数据库,字段为备注型输出是空白

<?php include 'conn.php'; $id=$_GET['id']; $sql="select biaoti,neirong from news WHERE id =".$id;$query=odbc_do($conn,$sql);while(odbc_fetch_row($query)){$biaoti=odbc_result($query,biaoti);echo $biaoti; //标题可以输出echo $neirong;// 内容是空的,输出不了}?>

你的备注字段时候什么类型的?


$biaoti=odbc_result($query,biaoti);
echo $biaoti; //标题可以输出
echo $neirong;// 你没有读 neirong 的内容,当然输出不了

你的备注字段时候什么类型的?


$biaoti=odbc_result($query,biaoti);
echo $biaoti; //标题可以输出
echo $neirong;// 你没有读 neirong 的内容,当然输出不了



这里写错了,我有加读取neirong的代码
neirong的字段类型就是备注类型。

你 echo strlen($neirong);
输出的是什么?

你 echo strlen($neirong);
输出的是什么?


内容输出OK了,使用iconv导字符截断的问题没有解决。

从2008年4月18日起,蛇口往返澳门(新港澳码头)各增加两个航班
截断了变成:
从2008年4月18日起,蛇口往返澳门(新港澳码头)各增  

不可能! utf-8 集合比 gbk 集合大

$s = '从2008年4月18日起,蛇口往返澳门(新港澳码头)各增加两个航班';echo iconv('gbk', 'utf-8//ignore', $s);
从2008年4月18日起,蛇口往返澳门(新港澳码头)各增加两个航班

不可能! utf-8 集合比 gbk 集合大

$s = '从2008年4月18日起,蛇口往返澳门(新港澳码头)各增加两个航班';echo iconv('gbk', 'utf-8//ignore', $s);
从2008年4月18日起,蛇口往返澳门(新港澳码头)各增加两个航班


版主,有没有邮箱,可否直接发数据库和代码给你

把 news 表的 biaoti 字段宽度从 50 改为 100
一切问题都解决了

把 news 表的 biaoti 字段宽度从 50 改为 100
一切问题都解决了


版主,我不是很理解,比方说,如果我设的是50字节,那么我保存的时候只能存50字节数据,对么?但是数据库里明显是存进去了,但为何就是没取出来呢?

是的,插入时如果超长是要报错的!
我也不知道你是怎么插入的
就算 biaoti 只按 50 读出数据,从而导致尾部乱码
但也不应该影响 neirong 的读取,而事实是 biaoti 超长时,neirong 就读取不到

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn