中国語と英語のバイト長と、PHP と Java のエンコーディングの関係を覚えておいてください。
1.PHP
PHPは実際にはC言語と同じで、ASCIIを使用し、GBKエンコーディングでは1つの文字が1バイトを占有し、1つの英語が1バイトを占有し、1つの中国語が2バイトを占有します。ただし、UTF-8 エンコーディングでは、英語の文字は依然として 1 バイトを占有しますが、中国語の文字は 3 ~ 4 バイト (通常は 3 バイト) を占有します。これにより、通常、文字列の語長を取得できるようになります。文字列のインターセプトにより問題が発生します。例:
<?php $str = "我爱你Iloveyou"; echo strlen($str); //utf8下是17,GBK下是14,但如果问你$str的字长是多少,或者让你显示前6个字,其余省略号表示,怎么办? ?>
上記の質問に対する答えは、オンラインで見つけることができます。最も簡単な方法は、拡張ライブラリを使用し、mb_substr 関数を使用してインターセプトすることです。
2.Java
Javaのcharは2バイトです。 Java は Unicode を使用しており、中国語または英語の文字の Unicode エンコードでは 2 バイトが使用されますが、他のエンコード方式が使用される場合、文字が占めるバイト数は異なります。例:
public class Test {
public static void main(String[] args){
String str = "我们aaaaa";
int byte_len = str.getBytes().length;
int len = str.length();
System.out.println("字节长度为:" + byte_len);
System.out.println("字符长度为:" + len);
}
}
上記の例では、GBK での出力結果は 9 と 7 ですが、UTF-8 での出力結果は 11 と 7 です。つまり、エンコーディングが何であっても、str.length() を使用して取得される語長はすべて一貫しています。 このメソッドは、文字列内の文字数を漢字でも英語でも1文字として返します。
上記では、PHP と Java における中国語と英語のバイト長とエンコーディングの関係について、その内容も含めて紹介しましたので、PHP チュートリアルに興味のある友人の参考になれば幸いです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP の深い理解: JSONUnicode を中国語に変換する実装方法 開発中、JSON データを処理する必要がある状況によく遭遇しますが、特に変換する必要がある場合、JSON 内の Unicode エンコードによっていくつかのシナリオで問題が発生します。 Unicode エンコードを漢字に変換する場合。 PHP では、この変換処理を実現するためのメソッドがいくつかありますが、以下では一般的なメソッドを紹介し、具体的なコード例を示します。まず、JSON の Un について理解しましょう

Unicode は、さまざまな言語や記号を表すために使用される文字エンコード標準です。 Unicode エンコードを中国語の文字に変換するには、Python の組み込み関数 chr() および ord() を使用できます。

文字列の長さを取得するには、Java の String.length() 関数を使用します。Java プログラミングでは、文字列は非常に一般的なデータ型です。多くの場合、文字列の長さ、つまり文字列内の文字数を取得する必要があります。 Java では、String クラスの length() 関数を使用して文字列の長さを取得できます。簡単なコード例を次に示します。 publicclassStringLengthExample{publ

Eclipseで中国語の文字化けに悩んでいませんか?これらのソリューションを試すには、特定のコード サンプルが必要です。 1. 背景の紹介 コンピューター技術の継続的な発展に伴い、ソフトウェア開発において中国語がますます重要な役割を果たしています。しかし、多くの開発者は、中国の開発に Eclipse を使用するとコードの文字化けの問題に遭遇し、作業効率に影響を及ぼします。次に、この記事では、一般的なコードの文字化けの問題をいくつか紹介し、読者が Eclipse での中国語の文字化けコードの問題を解決できるように、対応する解決策とコード例を示します。 2. 一般的なコード文字化けの問題と解決策ファイル

JSON (JavaScriptObjectNotation) は、Web アプリケーション間のデータ交換に一般的に使用される軽量のデータ交換形式です。 JSON データを処理するとき、Unicode でエンコードされた中国語の文字 (「u4e2du6587」など) が頻繁に発生するため、それらを読み取り可能な中国語の文字に変換する必要があります。 PHP では、いくつかの簡単なメソッドを通じてこの変換を実現できます。次に、JSONUnico を変換する方法を詳しく説明します。

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

ビッグ データやクラウド コンピューティングなどのテクノロジーの発展に伴い、データベースは企業情報化の重要な基盤の 1 つになりました。 Java で開発されたアプリケーションでは、MySQL データベースに接続することが標準になっています。ただし、このプロセスでは、一貫性のない Unicode 文字セットのエンコーディングという厄介な問題に遭遇することがよくあります。これは開発効率に影響を与えるだけでなく、アプリケーションのパフォーマンスと安定性にも影響します。この記事では、この問題を解決し、Java が MySQL データベースによりスムーズに接続できるようにする方法を紹介します。 1. ユニコード

Unicode と ASCII の違いには、エンコード範囲の違い、記憶域の違い、互換性の違いなどが含まれます。詳細な紹介: 1. エンコード範囲が異なります。ASCII のエンコード範囲は 0 ~ 127 で、主に英語の文字を表すために使用されます。Unicode のエンコード範囲はさらに広く、ほぼすべての言語の文字を表すことができます。2. ストレージASCII は通常 1 バイトを使用して文字を格納しますが、Unicode は 2 バイト以上を使用して文字を格納する場合があります; 3. 互換性の違いなど
