php教程 php手册 PHP自动识别字符集编码并完成转码

PHP自动识别字符集编码并完成转码

May 25, 2016 pm 04:44 PM
문자 집합 코딩 자동인식

原理很简单,因为gb2312/gbk是中文两字节,这两个字节是有取值范围的,而utf-8中汉字是三字节,同样每个字节也有取值范围,而英文不管在何种编码情况下,都是小于128,只占用一个字节,全角除外.

在PHP处理页面的时候,我们对于字符集的转换都是采用了iconv或者mb_convert等函数,但这其实是有一个前提的,即我们事先得知道in和out是什么样的编码,我们才能进行正确的转换.

下面这个函数,就可以在不知道源字符串编码的情况下,自动判断其编码并进行转换,虽然只支持UTF8编码和GB2312编码,但对于国内绝大多数网站来说,已经够用了,代码如下:

<?php
function safeEncoding($string, $outEncoding = &#39;UTF-8&#39;) {
    $encoding = "UTF-8";
    for ($i = 0; $i < 128) continue;
    if ((ord($string{$i}) & 224) == 224) {
        //第一个字节判断通过
        $char = $string{++$i};
        if ((ord($char) & 128) == 128) {
            //第二个字节判断通过
            $char = $string{++$i};
            if ((ord($char) & 128) == 128) {
                $encoding = "UTF-8";
                break;
            }
        }
    }
    if ((ord($string{$i}) & 192) == 192) {
        //第一个字节判断通过
        $char = $string{++$i};
        if ((ord($char) & 128) == 128) {
            //第二个字节判断通过
            $encoding = "GB2312";
            break;
        }
    }
}
if (strtoupper($encoding) == strtoupper($outEncoding)) return $string;
else return iconv($encoding, $outEncoding, $string);
}
?>
로그인 후 복사

识别汉字编码,因为YBlog用的是utf-8,如果引用通告发过来的是gb2312的编码的话,需要可以识别并完成编码转换,代码如下:

<?php
function safeEncoding($string, $outEncoding = &#39;UTF-8&#39;) {
    $encoding = "UTF-8";
    for ($i = 0; $i < strlen($string); $i++) {
        if (ord($string{$i}) < 128) continue;
        if ((ord($string{$i}) & 224) == 224) {
            //第一个字节判断通过
            $char = $string{++$i};
            if ((ord($char) & 128) == 128) {
                //第二个字节判断通过
                $char = $string{++$i};
                if ((ord($char) & 128) == 128) {
                    $encoding = "UTF-8";
                    break;
                }
            }
        }
        if ((ord($string{$i}) & 192) == 192) {
            //第一个字节判断通过
            $char = $string{++$i};
            if ((ord($char) & 128) == 128) {
                //第二个字节判断通过
                $encoding = "GB2312";
                break;
            }
        }
    }
    if (strtoupper($encoding) == strtoupper($outEncoding)) return $string;
    else return iconv($encoding, $outEncoding, $string);
}
?>
로그인 후 복사

               
               

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

11가지 일반적인 분류 특징 인코딩 기술 11가지 일반적인 분류 특징 인코딩 기술 Apr 12, 2023 pm 12:16 PM

기계 학습 알고리즘은 숫자 입력만 허용하므로 범주형 특성을 발견하면 범주형 특성을 인코딩합니다. 이 문서에서는 11가지 일반적인 범주형 변수 인코딩 방법을 요약합니다. 1. ONE HOT ENCODING 가장 널리 사용되고 일반적으로 사용되는 인코딩 방법은 One Hot Encoding입니다. n개의 관측값과 d개의 개별 값을 갖는 단일 변수는 n개의 관측값을 갖는 d개의 이진 변수로 변환되며, 각 이진 변수는 비트(0, 1)로 식별됩니다. 예를 들어, 인코딩 후 가장 간단한 구현은 pandas' get_dummiesnew_df=pd.get_dummies(columns=['Sex'], data=df)2를 사용하는 것입니다.

utf8로 인코딩된 중국어 문자는 몇 바이트를 차지합니까? utf8로 인코딩된 중국어 문자는 몇 바이트를 차지합니까? Feb 21, 2023 am 11:40 AM

UTF8로 인코딩된 한자는 3바이트를 차지합니다. UTF-8 인코딩에서는 한자 1개가 3바이트이고, 중국어 구두점 1개가 3바이트를 차지하는 반면, 유니코드 인코딩에서는 한자 1개(중국어 번체 포함)가 2바이트에 해당합니다. UTF-8은 각 문자를 인코딩하는 데 1~4바이트를 사용합니다. 하나의 US-ASCIl 문자는 인코딩하는 데 1바이트만 필요합니다. 발음 구별 부호가 있는 라틴어, 그리스어, 아르메니아어 및 기타 문자는 2바이트가 필요합니다. 부호화.

지식 그래프: 대형 모델을 위한 이상적인 파트너 지식 그래프: 대형 모델을 위한 이상적인 파트너 Jan 29, 2024 am 09:21 AM

LLM(대형 언어 모델)은 매끄럽고 일관된 텍스트를 생성하는 기능을 갖추고 있어 인공 지능 대화 및 창의적 글쓰기와 같은 영역에 새로운 전망을 제시합니다. 그러나 LLM에는 몇 가지 주요 제한 사항도 있습니다. 첫째, 그들의 지식은 훈련 데이터에서 인식된 패턴으로 제한되어 있으며 세상에 대한 진정한 이해가 부족합니다. 둘째, 추론 능력이 제한되어 있어 여러 데이터 소스에서 논리적 추론을 하거나 사실을 융합할 수 없습니다. 더 복잡하고 개방형 질문에 직면할 때 LLM의 답변은 "환상"이라고 알려진 터무니없거나 모순될 수 있습니다. 따라서 LLM은 일부 측면에서 매우 유용하지만 복잡한 문제와 실제 상황을 처리할 때 여전히 특정 제한 사항이 있습니다. 이러한 격차를 해소하기 위해 최근 몇 년 동안 검색 증강 생성(RAG) 시스템이 등장했습니다.

몇 가지 일반적인 인코딩 방법 몇 가지 일반적인 인코딩 방법 Oct 24, 2023 am 10:09 AM

일반적인 인코딩 방법에는 ASCII 인코딩, 유니코드 인코딩, UTF-8 인코딩, UTF-16 인코딩, GBK 인코딩 등이 포함됩니다. 자세한 소개: 1. ASCII 인코딩은 7비트 이진수를 사용하여 영어 문자, 숫자, 구두점, 제어 문자 등을 포함하여 128개의 문자를 나타내는 최초의 문자 인코딩 표준입니다. 2. 유니코드 인코딩은 표현하는 데 사용되는 방법입니다. 세상의 모든 문자 각 문자에 고유한 디지털 코드 포인트를 할당하는 문자의 표준 인코딩 방법 3. UTF-8 인코딩 등

PHP 데이터베이스 쿼리 결과 인코딩 문제를 해결하는 방법 PHP 데이터베이스 쿼리 결과 인코딩 문제를 해결하는 방법 Mar 21, 2023 am 11:49 AM

PHP는 동적 웹 페이지와 애플리케이션을 작성하는 데 사용할 수 있는 널리 사용되는 웹 프로그래밍 언어입니다. 실제 애플리케이션에서 PHP는 데이터를 쿼리하고 처리하기 위해 데이터베이스와 상호 작용해야 하는 경우가 많습니다. 그러나 PHP를 사용하여 데이터베이스에서 결과를 얻을 때 인코딩 문제가 발생할 수 있으며, 이로 인해 종종 문자가 깨집니다. 그렇다면 PHP 데이터베이스 쿼리 결과 인코딩 문제를 해결하는 방법은 무엇입니까?

PHP 코딩 팁: 위조 방지 검증 기능이 있는 QR 코드를 생성하는 방법은 무엇입니까? PHP 코딩 팁: 위조 방지 검증 기능이 있는 QR 코드를 생성하는 방법은 무엇입니까? Aug 17, 2023 pm 02:42 PM

PHP 코딩 팁: 위조 방지 검증 기능이 있는 QR 코드를 생성하는 방법은 무엇입니까? 전자상거래와 인터넷의 발달로 다양한 산업분야에서 QR코드의 활용이 늘어나고 있습니다. QR코드를 사용하는 과정에서 제품의 안전성 확보와 위조방지를 위해서는 QR코드에 위조방지 검증기능을 추가하는 것이 매우 중요합니다. 이 기사에서는 PHP를 사용하여 위조 방지 검증 기능이 포함된 QR 코드를 생성하는 방법을 소개하고 해당 코드 예제를 첨부합니다. 시작하기 전에 다음과 같은 필수 도구와 라이브러리를 준비해야 합니다: PHPQRCode: PHP

AI 소프트웨어는 고대 설형 문자판을 자동으로 식별할 수 있으며 연구자들은 획기적인 발전을 이루었습니다. AI 소프트웨어는 고대 설형 문자판을 자동으로 식별할 수 있으며 연구자들은 획기적인 발전을 이루었습니다. Nov 24, 2023 pm 02:26 PM

11월 24일 뉴스: 마틴 루터 대학교 할레-비텐베르크(MLU), 요하네스 구텐베르크 대학교 마인츠, 마인츠 응용 과학 소프트웨어 대학교 팀이 개발한 새로운 인공 지능이 이제 읽을 수 없는 설형 문자를 해독할 수 있습니다. 사진에 의존했던 이전 방식과 달리, 이 AI 시스템은 설형판의 3D 모델을 활용해 이전 방식보다 더 안정적인 결과를 제공합니다. 이를 통해 여러 조각의 콘텐츠를 비교하여 검색할 수 있으며 완전히 새로운 연구 질문에 대한 길을 열 수 있습니다. 새로운 연구에서 연구원들은 MLU 컬렉션의 약 50개를 포함하여 거의 2,000개의 설형 문자판의 3D 모델을 사용했습니다. 이러한 태블릿은 전 세계에 약 백만 개 정도 남아 있는 것으로 추정되며, 그 중 상당수는 5,000년이 넘은 것입니다.

한 기사에서 GenAI를 기반으로 코딩 성능을 향상시키는 방법을 알아보세요. 한 기사에서 GenAI를 기반으로 코딩 성능을 향상시키는 방법을 알아보세요. Apr 01, 2024 pm 06:49 PM

안녕하세요 여러분, 제 이름은 루가입니다. 오늘은 인공지능(AI) 생태분야 분야인 GenAI와 관련된 기술에 대해 이야기해보겠습니다. 급속한 기술 혁신과 차별화된 비즈니스 시나리오라는 과제에 직면하면서 전통적인 코딩 방법은 적응되기 시작했으며 증가하는 요구에 완전히 대처할 수 없습니다. 동시에 신흥 범용 GenAI(인공지능 기술)는 이러한 수요를 충족할 수 있는 큰 잠재력을 가지고 있습니다. GenAI는 인공지능 기술의 대표주자로서 강력한 잠재력과 능력을 바탕으로 각계에서 널리 활용되기 시작했습니다. 다양한 시나리오의 코딩 요구 사항을 자동으로 학습하고 적응할 수 있어 코딩 효율성과 품질이 크게 향상됩니다. 딥러닝과 모델 최적화를 통해 GenAI는 다양한 정보를 정확하게 이해할 수 있습니다.

See all articles