오늘 온라인에서 논문을 수정하던 중 iconv 기능을 만났습니다. 알아보기
header('Content-Type: application/vnd.ms-excel;charset=UTF-8"'); $name=iconv('utf-8', 'gb2312', $data['year'].'年,第'.$data['period'].'期通信录'); header('Content-Disposition: attachment;filename="' . $name . '.xls"'); header('Cache-Control: max-age=0');
이 코드의 의미는 utf-8 형식을 gb2312 형식으로 변환한 후 $name에 할당한다는 것입니다. 이렇게 하면 엑셀 파일 이름을 내보낼 때 $라는 중국어 이름이 됩니다. 이름.
이 기능의 상세하고 확장된 사용법은 다음과 같습니다
iconv("UTF-8","GB2312//IGNORE",$data)
ignore는 변환 중 오류를 무시한다는 의미입니다. 무시 매개변수가 없으면 이 문자 뒤에 오는 모든 문자열을 저장할 수 없습니다.
php5에는 iconv() 함수가 내장되어 있습니다.
예:
<?php echo $str= '你好,这里是卖咖啡!'; echo '<br />'; echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8 echo '<br />'; echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节 print_r(iconv_get_encoding()); //得到当前页面编码信息 echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度 //也有这样用的 $content = iconv("UTF-8","gbk//TRANSLIT",$content); ?>
iconv는 PHP의 기본 기능은 아니며, 기본적으로 설치되는 모듈이기도 합니다. 사용하기 전에 설치해야 합니다.
Windows 2000 PHP인 경우 php.ini 파일을 수정하고 확장자=php_iconv.dll 앞에 있는 ";"을 제거해야 합니다. 동시에 원래 PHP 설치 파일에 iconv.dll을 복사해야 합니다. winnt/system32 다음으로(dll이 이 디렉토리를 가리키는 경우)
Linux 환경에서는 정적 설치를 사용하고 구성 시 --with-iconv 항목을 추가하면 phpinfo에서 iconv 항목을 확인할 수 있습니다. (Linux7.3 Apache4.06 php4.3.2),
다운로드: ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz
설치:
#cp libiconv-1.8.tar.gz /usr/local/src #tar zxvf lib* #./configure --prefix=/usr/local/libiconv #make #make install
php 컴파일
#./configure --prefix=/usr/local/php4.3.2 --with-iconv=/usr/local/libiconv/
간단한 사용 예:
<?php echo iconv("gb2312","ISO-8859-1","我们"); ?>
PHP의 mb_convert_encoding 및 iconv 함수 소개
mb_convert_encoding 이 함수는 인코딩을 변환하는 데 사용됩니다. 예전에는 프로그램 코딩의 개념을 이해하지 못했는데 이제는 조금 이해가 된 것 같습니다.
그러나 영어에는 일반적으로 인코딩 문제가 없으며 중국어 데이터에만 이 문제가 있습니다. 예를 들어, Zend Studio 또는 Editplus를 사용하여 프로그램을 작성할 때 gbk 인코딩을 사용합니다. 데이터를 데이터베이스에 입력해야 하고 데이터베이스 인코딩이 utf8이면 데이터를 인코딩하고 변환해야 합니다. 데이터베이스에 들어갈 때 깨집니다.
mb_convert_encoding 사용법은 공식 홈페이지를 참조하세요:
http://cn.php.net/manual/zh/function.mb-convert-encoding.php
GBK를 UTF-8로 만들기
< ?php header("content-Type: text/html; charset=Utf-8"); echo mb_convert_encoding("妳係我的友仔", "UTF-8", "GBK"); ?>
또 다른 GB2312가 Big5로
< ?php header("content-Type: text/html; charset=big5"); echo mb_convert_encoding("你是我的朋友", "big5", "GB2312"); ?>
단, 위 기능을 사용하려면 먼저 mbstring 확장 라이브러리를 설치하고 활성화해야 합니다.
PHP의 또 다른 함수 iconv는 문자열 인코딩을 변환하는 데 사용되며 해당 기능은 위의 함수와 유사합니다.
아래에 몇 가지 자세한 예가 있습니다.
iconv — Convert string to requested character encoding (PHP 4 >= 4.0.5, PHP 5) mb_convert_encoding — Convert character encoding (PHP 4 >= 4.0.6, PHP 5)
사용법:
string mb_convert_encoding ( string str, string to_encoding [, mix from_encoding] )
먼저 mbstring 확장 라이브러리를 활성화하고 php.ini
에서 Extension=php_mbstring.dll 앞에 있는 ;를 제거해야 합니다.
mb_convert_encoding은 여러 입력 인코딩을 지정할 수 있지만 내용을 기반으로 자동으로 식별되지만 실행 효율성은 iconv보다 훨씬 나쁩니다.
참고: 변환할 인코딩을 지정하는 것 외에도 두 번째 매개변수는 //TRANSLIT 및 //IGNORE라는 두 개의 접미사를 추가할 수도 있습니다. 여기서 //TRANSLIT는 직접 변환할 수 없는 문자를 하나 이상의 대략적인 문자로 자동 변환합니다. //IGNORE는 변환할 수 없는 문자를 무시하며 기본 효과는 첫 번째 잘못된 문자를 자르는 것입니다.
변환된 문자열을 반환하거나 실패 시 FALSE를 반환합니다.
"-" 문자를 gb2312로 변환할 때 iconv에서 오류가 발생하는 것으로 확인되었습니다. 무시 매개변수가 없으면 이 문자 뒤에 오는 모든 문자열을 저장할 수 없습니다. 어쨌든 이 "-"는 성공적으로 변환될 수 없으며 출력될 수 없습니다. 게다가 mb_convert_encoding에는 이런 버그가 없습니다.
일반적으로 iconv를 사용합니다. 원본 인코딩이 무엇인지 알 수 없거나 변환 후 iconv가 정상적으로 표시되지 않는 경우에만 mb_convert_encoding 함수를 사용하세요.
from_encoding은 변환 전 문자 코드 이름으로 지정됩니다. 배열 또는 문자열일 수 있습니다. 지정하지 않으면 내부 인코딩이 사용됩니다. /* JIS, eucjp-win, sjis-win에서 인코딩을 자동 감지한 다음 str을 UCS-2LE로 변환 */
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”)
/* "auto"는 "ASCII,JIS,UTF-8,EUC-JP,SJIS"로 확장됩니다. */
$str = mb_convert_encoding($str, “EUC-JP”, “자동”);
예:
php에서 iconv 함수를 사용할 때 쉽게 간과하기 쉬운 매개변수
오늘 캡처한 콘텐츠를 처리할 때 인코딩 변환을 위해 iconv를 사용할 때 결과가 중단되는 것을 발견했습니다. 문자 세트에 문제가 있는 것으로 추측하여 대상에 존재하지 않는 문자를 건너뛰는 방법을 고려했습니다. 매뉴얼을 확인해보니 iconv 함수에 매개변수가 3개만 있는데 작동하지 않는 것 같더라구요. 그러다가 인터넷을 확인해 보니 어떤 분이 가능하다고 했었는데 어떻게 구현하는지 정말 놀랐습니다. 영어 설명에는 대상 코드 끝에 "TRANSLIT"라는 레이블을 추가할 수 있다고 되어 있는 것을 발견했습니다. 어떻게 추가해야 할까요? 알고보니 "//"가 먼저 추가된 것 같은데 정말 우울하네요
프로토타입: $txtContent = iconv("utf-8",'GBK',$txtContent);
특수 매개변수: iconv("UTF-8","GB2312//IGNORE",$data)
두 가지 선택적 보조 매개변수: TRANSLIT 및 IGNORE(여기서 IGNORE는 변환할 수 없는 항목이 발견되면 건너뛰는 것을 의미합니다).
위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
