
文字列の明確な違いがわかりません。
たとえば16進数のアスキー文字であれば
print "\x41";
とした場合
A
という文字が出力されます。
また
print 0x41;
とした場合はアスキー文字ではなく
65という10進数における数値が出力されますね。
さらには
print "\xe6\x96\x87\xe5\xad\x97\xe5\x88\x97";
と記述すると
文字列 という文字が出力されます。
ではそうではなくユニコード文字列というのはなんなのでしょうか?
一般てきに \u0000
という形式で表記される物ですが、コレがいまいちわかりません。
これは16進数のアスキー文字によるマルチバイト文字の再現と何がことなるのでしょうか?
たとえば、JSONなんかを単純に出力してみるとこのユニコード文字列という形式で表現されますよね?
このユニコード文字列の実態?を知りたいです。
よろしく御願いします。
No.2ベストアンサー
- 回答日時:
サクッと本題へ
一つ目の質問
A,出来ます
色々とやり方があります
コードを文字に変換し用意されている関数を使うこと
変換した後でコード化すれば任意のコードになるかと
・mb_convert_encoding('文字列','変換後コード','変換前コード')
・PDF_utf16_to_utf8 — 文字列を UTF-16 から UTF-8 に変換する
・PDF_utf32_to_utf16 — 文字列を UTF-32 から UTF-16 に変換する
・PDF_utf8_to_utf16 — 文字列を UTF-8 から UTF-16 に変換する
http://codezine.jp/article/detail/2668
二つ目の質問
A.はい、そうです
基本的にUnicodeと言えばUTF-16のLEなんですけれど
UTF32はマルチバイト文字列圏内では表現出来る文字が増えて嬉しい限りでしょうが
逆にマルチバイト文字列圏外では余計な情報なんですよね……
本当はUTF-8でも良いくらい、でもそれじゃマルチバイト圏内の人を蔑ろに……
なら、間を取って16にしようや……ってのが現在
なのでWindowsでUnicodeと言って使われているのは全国共通でUTF-16LE
先のURL先でffffと入れてみたら分かると思いますが1000のFなんですよね
……桁数が溢れてるんですよ、基本的にマルチバイトを使いたくなければ必要のない情報です
使いたければUTF-32にすればいいし、使いたくなければUTF-16にすればいいし
ただし、UNIX環境とかで使ってるコードは英語のみだぜ!って事ならUTF-8を使ったほうがいいです
英語圏のコードとかも入れやすいし……
No.1
- 回答日時:
全てのコンピュータ上で統一された規格がユニコードになります
UTF-8やUTF-16の数字の部分は区切るビット幅
文字を8ビットごとに表しますよ、16ビットごとに表しますよってこと
\u 00 00
ユニコードの0000
これは制御文字列のユニコードなのですが例えが悪いです
全て0なので区切りが……
例が16進数なので16進数で説明すると
\u(ユニコード接頭) 000(レコード) 0(フィールド)
だったかな?
エクセルを思い浮かべてください
あのセル一つ一つに文字が入っていて
「\u010A」と表記することで決められている場所に入っている文字を読み取りに行ってる感じです
そしてコードごとに入っている文字を決めたのは
ゼロックス社を始めとするユニコードコンソーシアムと言う団体
リンク先も是非一読してみてください(特に二番目)
Hexに4桁の16進数を入れれば意味がわかるはずです
http://ja.wikipedia.org/wiki/Unicode
http://code.cside.com/3rdpage/jp/?charset=utf-8& …
ご回答ありがとうございます。
UTF-8とUTF-16の違いは
ユニコード・・・・日本語でいうと文字集合(だいたいこの言葉で紹介されていますよね?)
の【コードポイント】文字の通し番号みたいなものを表現するための方式の違いという理解ですいいですかね?
UTF-8は日本語一文字がだいたい3バイトで表現されるという説明が大半かとおもいます。
追加で申し訳ないですが二点質問致します。
一点目=>
本質問で、例に挙げた
【文字列】と言う文字をUTF-8の形式であらわすと
「"\xe6\x96\x87\xe5\xad\x97\xe5\x88\x97"」
という形になると描きましたが、日本語一文字が16進数形式の8ビット 三つ分で表現されていますね。
ただ、ユニコードの表現方式の一つというと例えば最初の文字列という文字の【文】という箇所をUTF-8とだと【\xe6\x96\x87】
となりますが、これはなにかしらの方法で、本来の【文】という文字を表現するユニコード(文字集合)のコードポイントである \u○○○○の形式に変換すること(言い方を返ると戻すこと?)もできるということでしょうか?
回答いただいたURLでしらべてみると6587番目が【文】という文字が格納されていますね。
つまり 【\xe6\x96\x87】を【\u6587】へとPHP上で変換できるのかどうか?
二点目=>
たいしてUTF-16というのは英語・日本語等のマルチバイトな文字問わず一文字16ビットで表現するエンコード方式という解釈でいいでしょうか?
すべての文字が\u0000 ~ \uFFFFの範囲で表現されるということですよね?
ただこの場合、もちろん2の16乗分・・・・・つまり65536文字分しか文字集合としてまとめることができず
結果、マルチバイト圏から不満の声がでたと各サイト等でありました。
そこでさらにもともとのユニコードから拡張したUTF-32が発案されて \u○○○○○○の六桁まで表現できるという感じですかね?
つまり【\uFFFF】番目以降の文字を表現するためにはUTF-32でエンコードすることが必要ということなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Perl perlについての質問 2 2022/10/17 15:25
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- その他(コンピューター・テクノロジー) googleスプレッドシートでカッコ内の文字数をカウントしたい 1 2023/01/17 15:52
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) エクセルの日付から年末尾2桁と月を1月をA~Lに変換したい 3 2022/08/08 10:32
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php文字列中のシングルクオート...
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
microSDの装着による連続待受時...
-
mb_convert_encodingについて
-
ダウンロードすると画像が壊れ...
-
php.iniのエンコーディングの設...
-
「クラウドにアップロード」」...
-
どのように読み込んでるのでし...
-
session_startでクッキー範囲を...
-
phpでお問い合わせフォームを作...
-
ライブドアブログにPHPスクリプ...
-
引数を正しく読み込む方法
-
上位ディレクトリ名(フォルダ...
-
PHPスクリプトにプロキシを弾か...
-
path文字列の操作
-
初めまして、
-
phplot.phpに関して
-
生成したHTMLをボタンクリック...
-
.phpと.incファイルの違いはな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php文字列中のシングルクオート...
-
getでurl
-
php→JavaScript間の変数受け渡し
-
PHPにおいて、配列データをMySQ...
-
is_callable()の第二引数の使い方
-
PHPでカンマ区切り文字列を数値...
-
PHPのGETとPOSTの処理を学習中...
-
ある文字列の最後の2桁で分解...
-
文字列を大文字の2桁ごとのコン...
-
PHP,Perl の正規表現で”ー"...
-
php 言語について
-
文字列を%+2桁のヘキサ
-
urldecodeについて
-
PHPで4桁の文字コード(SHIFTJI...
-
PHP4から5への移行に伴うFatal ...
-
blob型のデータの変換について
-
【比較演算子】偶数・奇数識別...
-
リダイレクトできません。クエ...
-
秀丸エディタのハイライト(mar...
-
phpでの単語数
おすすめ情報