ホームページ  >  記事  >  バックエンド開発  >  RADPHP は中国のメソッドを完全にサポートします

RADPHP は中国のメソッドを完全にサポートします

WBOY
WBOYオリジナル
2016-06-23 13:51:192512ブラウズ

RADPHP の中国語表示の問題を解決する方法はウェブサイトにたくさんありますが、それらはすべて根本的な問題を解決するものではありません。具体的な方法は次のとおりです。

本当の方法。 radphp での中国語表示の問題を解決します
radphp は非常に優れた PHP プログラマであり、プログラムを作成するためのドラッグ アンド ドロップ方式は非常に使いやすいです
ただし、そのベータ版では ANSI でエンコードすると中国語の文字を表示できません。インターネット上の多くの記事では、
UTF8 コードに変更する必要があると書かれていますが、テストしてコードを追跡したところ、クラス ライブラリ ファイルのコードが変更されていることがわかりました。 rpcl ファイルが間違っていたのかどうかはわかりません。入手したのは試用版だけだったからです。修正方法は次のとおりです。
rpcl ディレクトリ内のclasses.inc.php ファイルを開き、コードの 387 行目 (つまり、VCLDecodeUnicode という名前の関数) を見つけます。
行 387 は次のようになります。 !function_exists('mb_convert_encoding'))”
判定条件の ! を削除すると、
は “if(function_exists('mb_convert_encoding'))” になります
本来の意味は、PHP 版に 'mb_convert_encoding' 関数が存在する場合、
次のコードは実行されず、すぐにジャンプします この関数を転送してください
ただし、! を追加すると、意味が完全に逆になるため、中国語が正しく表示されなくなります。
したがって、VCLDecodeUnicode 関数を次のように変更する必要があります。
関数 VCLDecodeUnicode($orgstr)
{
if(function_exists('mb_convert_encoding'))
{
return $orgstr; }

$pattern = '/([0-9]+);/'; preg_match_all($pattern, $orgstr, $matches);
$size = count($matches[0])
{
return $orgstr }

$rep_tbl = 配列();
for($i = 0; $i yyyyy
$utf8_str = ”;
if( $dec_val >= 0×0001 && $dec_val 0x07FF )
{
$utf8_str .= chr(0xE0 | ($ dec_val >> 12) & 0x0F));
$utf8_str .= chr(($dec_val >> 6) & 0x3F)); ($dec_val >> 0) & 0x3F));
} else
{
$utf8_str .= chr(0xC0 | (($dec_val >> 6) & 0x1F));
$utf8_str .= chr ( 0×80 | (($dec_val >> 0) & 0x3F));
}
}
$rep_tbl[$matches[0][$i]] = $utf8_str( $ ORGSTR, $ Rep_tbl);
$ Internal_Str = MB_CONVERT_ENCODING ($ nWestr, mb_internal_encoding (), 'UTF-8 ');


ディスカッション (解決策) への返信

ありがとうございます。はい、このものの簡体字中国語のサポートには確かに問題があります。

いつになったらもっと良いものを作れるでしょうか...

いくつかの調査の結果、radphp 中国語はすでに適切なサポートを備えていることがわかりました。ただし、GBK と GB2312 は両方とも mb_internal_encoding() 関数を使用してエンコーディングを決定します。 ANSI エンコーディング。デフォルトの ANSI エンコーディングは ISO-8859-1 エンコーディングとみなされます。そのため、次のコードを rpcl.inc.php ファイルに追加するだけで、ANSI エンコーディングが中国語で正しく表示されるようになります。
=============================================== ==========================
//デフォルトのエンコーディングが ISO-8859-1 の場合、GBK エンコーディングに設定します
if (mb_internal_encoding ( ) == "ISO-8859-1"){mb_internal_encoding("GBK");}

=========================== = ===============================================

そこでclasses.inc.php ファイルには何も問題がないため、変更する必要はありません。

公式ソリューション!
http://docwiki.embarcadero.com/RadPHP/en/UTF-8_Setup

公式ソリューション!テスト済みで動作します!

http://docwiki.embarcadero.com/RadPHP/en/UTF-8_Setup

公式ソリューションのエンコード方式は UTF-8 である必要があり、GBK エンコードは機能しません

ポスターは強力です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。