• ベストアンサー

PHP が Unicode をネイティブにサポー

 「PHP が Unicode をネイティブにサポートしていない」とは!? どういうことなのでしょうか!?  以上宜しくお願いします。

  • PHP
  • 回答数2
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.2

Qiita - 【PHP入門講座】 文字列 http://qiita.com/mpyw/items/d61b50d90e84e289e2be サポートしていないとはいっても、上で述べている通りUTF-8を使えばだいたいの関数はマルチバイトにも対応できますね。

Campus2
質問者

お礼

ご回答誠にありがとうございます。  お返事が遅れて申し訳ございませんでした。 To_aru_User様のHPを読ませていただきました。  とても分かりやすく書かれていると感じました。 まだ、PHPは初心者レベルですので、よく読んで理解を深めたいと思います。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5080/13276)
回答No.1

PHPのString型は、内部ではバイト型の配列としてデータを取り扱っているため、関数の実装によってはデータをマルチバイトの文字では無くシングルバイトの文字としてデータを扱ってしまうためです。 substr関数などでマルチバイトの文字の1文字を途中で分割するような処理をすると、見事に分断してくれます。 これはデータを文字単位で扱っていない証拠です。 UnicodeをネイティブサポートしたString型のデータならバイト単位でデータを扱うのでは無く1文字単位で扱うので、1つの文字を分断してしまうような処理はできません。

Campus2
質問者

お礼

 ご回答誠にありがとうございます。 お返事が遅れて申し訳ございませんでした。  マルチバイト、シングルバイト等、初めて耳にする言葉です。      読むとPHPが文字をどんなに扱っているのかが分かります。    まだ、PHPは初心者レベルですので、まだ解説の言葉の意味につまずいている!レベルです。    よく読んで理解を深めたいと思います。

関連するQ&A

  • ユニコード変換

    javaでユニコード変換ができるクラスがあるのでしょうか? native2asciiのような変換をjavaからしたいのです。

  • Flash8のユニコードについて。(mySQLとの連携)

    Flash8とPHPとmysqlの連携でアプリケーションを作っています。 mysqlで作ったデータベースからphpで日本語のテキストを読み込み、ActionScriptで表示させたいのですが、ユニコード(?)が違うらしく文字化けが起こってしまいます。(ムービープレビューの際) mysqlのユニコードShift-JISにしています。 Flashのユニコードを変更することはできるのでしょうか? また、文字化け解消のアドバイスなどあればお願いします。

    • ベストアンサー
    • Flash
  • Unicodeとフォントの関係はどのようになっているのでしょうか?

    xubuntu英語版を使用しています。 個人的な需要から日本語と中国語を両方用いる事が必要不可欠なのですが、Firefoxを用いてUnicodeのウェブページを閲覧すると日本語および中国語が明朝体となってしまい非常に見づらくて困っております。 about:configにはユニコードのフォントを設定するらしい箇所がありますが、当然ユニコードフォントを設定しなければならないのですよね?(ためしにIPAモナーフォントを設定してみましたが相変わらずでした。) Firefoxでユニコードのページを(一応でも)表示できる以上なにかしらデフォルトのユニコードフォントを参照しているはずだとは思うのですが、それが一体どこを参照しているのか、フリーで見るに耐えるユニコードフォントは存在するのか、Firefox上で(できればOSでユニコードを使う際の標準として)設定しなおすことができるのか、というのが主な疑問です。 日本語および中国語の言語サポートはインストールしております。 文字コードやフォントに関してこの場で質問することが的確であるとは思えませんが他に適切なカテゴリが見当たらないためこちらで質問させていただきました。 よろしくお願いします。

  • ユニコード

    IMEパッドの使い方、保存のしかた IMEパッドのunicodeを入力したのですが保存をしようと思うとこのファイルはANSIテキストファイルとして保存すると失われてしまうunicode形式文字を含んでます。 unicodeの情報を保存するには、下のキャンセルをクリック、文字コードからunicodeを選択してください。続行しますか?OK キャンセルとでます。OK キャンセルをどちらもおしてみたのですが ?としか保存できませんどのようにすると保存できますか?パソコンしょしんしゃです。よろしくおねがいします

  • Unicodeって・・・

    Unicodeを初心者の人に説明するとしたらなんと説明したら いいのでしょう? どういうところで使われてるものでしょう? EXCELでテキストファイルで保存するとき Unicodeがありますが、 普通のテキスト形式とどう違うのでしょうか? テキストで保存したあとメモ帳などで開くと同じようですが。。。

  • [コンピュータアーキテクチャ] Unicodeについて

    Unicodeについて勉強中です。 その中で2つほど質問があります。 日本語コードとUnicodeの変換における問題点とその解決方法について教えていただけませんか? もう一つあります。 UNIXとWindowsでUnicodeはどのように用いられているのでしょうか? 以上二点についてご教授願います。

  • 文字コードANSIからUnicodeにしてください

    今日はじめたばかりの初心者です。 メモ帳でソースを作ってるのですが、 コードの文字数が多くなると、文字コードANSIからUnicodeにしてくださいとメモ帳から言われ、 Unicodeに変更して、保存すると、 http://localhost/tset.php でコードを確認すると、文字化けはしないのですが、おかしくなります。 だからって文字コードANSIにしていると、毎回Unicodeにしますか?と聞かれます。 こういう場合どうすればいいでしょうか? 他のテキストエディタハワードしか使ったことがないです。

    • ベストアンサー
    • PHP
  • Unicodeについて質問です。

    Unicodeについて質問です。 あるテキストファイルからUnicode文字を検索したいと思っています。 Unicode形式で保存したくないテキストファイルがあるのですが、どうやらどこかにUnicode文字を使ってしまったようで検索に手間取っています。 かなりの文章量のテキストファイルなので目で探す事は非常に困難で、仕方なくUnicodeコード表を元に一文字ずつ検索しているのですがなかなかヒットしません。 アラビア語のような特殊な文字を記入した記憶はないのですが、こちらのコード表(http://nurucom-archives.hp.infoseek.co.jp/digital/unicode-table.html)によると半角数字もUnicode文字となっていたりするようで知らずに入力した可能性が高いです。 できればテキスト貼り付け(方言変換サイトなどのように)でUnicode文字を検索できるサイトか、もしくはフリーソフトのようなものはありませんでしょうか。 Unicodeについて教えていただけるだけでも助かります。よろしくお願いします。

  • Unicodeを使うのだという設定はMySQLのどこでするのですか?

    中国人を中心とした名簿のようなシステムを作りたいと思います。 MS Accessで作れば容易でしょうが、ここはPHP+MySQLの勉強と 楽しみを兼ねて簡易なWebシステムにしたいです。なお、社内LANで 共有するだけなので、安全面には必要以上の配慮はしません。 問題ですが、Shift_JISの漢字だけでは留学生の名前で困るし、 かといってインターフェイス(HTML)は日本語にしたいです。 そこで、Unicodeなるものが登場するものと想像しているのですが、 HTMLソースの部分は <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> として、EmEditorなどUnicode対応エディタでシコシコかきますが、 MySQLの方の言語は、どこでどのようにセットすればよいのでしょうか。 MySQLのバージョンは5.0.21です。 その他、Unicode環境を構築するうえでの注意点等あれば、ご教示を お願いします。

    • ベストアンサー
    • MySQL
  • Unicodeについて

    お世話になっております。 papillon68と申します。 [バージョン] SQLServer2005 (Management Studio Express 9.00.2047.00) 早速ではありますが、今回ご教授頂きたいことはSQLSERVERでのUnicodeの扱いについてです。 PHPとAjaxとSQLServerの連携を行っています。 ソース(PHPとAjax)はUTF-8で書いています。 ここで、SQLServerへのやりとりもUTF-8で行いたいのですが、どのようにしたらよいでしょうか。 文字列を扱う列の型は「nchar、nvarchar、ntext」などを使っています。 UTF-8でSQLServerに登録すると2バイト文字(ひらがな、漢字など)が 入力したとおりに保存されます。 ですが、SQLServerからデータをSELECT文で抜き出したときに 2バイト文字が化けてしまっています。 どのようにすれば文字化けせずにソースもSQLServerもUTF8で行うことができるのでしょうか。 お手数をお掛け致しますが、ご教授よろしくお願い致します。

専門家に質問してみよう