> 백엔드 개발 > PHP 튜토리얼 > PHP使用Access数据库使用iconv导字符截断的问题

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

WBOY
풀어 주다: 2016-06-23 13:53:02
원래의
1158명이 탐색했습니다.

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 就读取不到

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿