バイト列

2010. 03. 23
NSStringクラスのまとめをしているんですが、メソッドが121個もある時点でうんざりしちゃったり、引数についての解説も必要だったりと、途方に暮れています。

一通りまとめてから公開しようとすると何日も間が空きそうなので、穴埋めに引数で出てくる用語の解説をしていきたいと思います。

まずは、- initWithBytes:length:encoding:で出てきた『バイト列』から。

●『バイト列』で検索してみる

『バイト列』で検索してみますと、あまりに当たり前の用語のせいか、文中の用語として引っかかるだけで、そのものに対する解説がなかなか出てきません。

強いて言えば、

・byte型データの配列
@IT/.NET TIPS/文字列をシフトJISとしてバイト列に変換するには?
・数値の列
IT用語辞典/UTF-8とは

つまり、『バイト列 = バイト配列 = バイト型配列』というわけですね。

同じ物なのに呼称が違うのはよくある話で、このサイト内でも英語とカタカナが入り乱れていますが・・・(申し訳ないとは思ってますが諦めてください)

●『バイト型』でぐぐってみる

さて、次は『バイト型』って何?となりまして、

・0から255までの符号無し8ビット(1バイト)の整数です
msdn/Visual Basicデベロッパーセンター/バイト型

よりによってMicrosoftに頼るとは・・・と思う人も最近は少ないでしょうが、Microsoftが成功したのはVisual Basicなど未経験開発者に対して敷居が低かったからだという気がします。

Macはユーザフレンドリーではありますが、Objective-C言語というマイナー言語という点を差し引いても、開発者に優しいというイメージがあまりありませんからね。

それは今現在の私が実証しているように、iPhoneアプリケーションを作ろうとすると、

・iPhoneアプリの入門書を読む → Objective-C言語の知識が必要
・Objective-C言語の入門書を読む → C言語の知識が必要
・C言語の入門書を読む

とたらい回しにされる点に現れていると思います。

しかも色々な資料を探すほど、『バイト列』のように用語の表記揺れがあったり、用語自体を調べ回ることになり、元々何の勉強をしていたのか分からなくなります。

閑話休題。

8ビットの値は16進数(0~9、A~F)で表記すると2桁で表せます(0x00~0xFF)。
(参照:睡人亭/文字コード入門/コンピュータ上での数値の扱い

つまり、

・バイト型は『0x00~0xFF』という値を取る
・バイト列はバイト型の値を格納する配列

ということになります。(多分)

●文字コード

数値や文字列の配列であれば、データベースのような使い方がすぐ浮かびます。

バイト列は定義だけ聞くと素人には使い道が思い浮かびませんが、ここで出てくるのが文字コードというものです。

ASCII、Unicode、Shift-JISなどなど、Safariでいうテキストエンコーディングのことで、コンピュータで文字を表す際に各文字に番号を割り振ったものです。

エンコーディングは『コード化する』の意味です。

どの文字にどんなコードが割り振られているかを確認する方法としては、『ことえり』ですと、

・『ことえり』のプルダウンメニュー、または環境設定で『言語とテキスト』を開く
・『入力ソース』で『キーボードビューアと文字ビューア』にチェックを入れる
・『ことえり』のプルダウンメニューで『文字ビューアを開く』を選択

すると文字ビューアが開きます。

下の検索欄に一文字入力し、左上の表示メニューで『コード表』を選択すると、文字コードが表示されます。

208

 
Unicode534365E9
UTF8E5 8D 83E6 97 A9
Shift JIS90E79181

このようにエンコーディングによって、同じ文字でも割り振られているコードが異なります。

ブラウザで文字化けする原因は、作ったファイルと表示するブラウザのエンコーディング設定が異なっているために、別の文字と認識してしまうことが原因です。

●バイト列の使い道

ブラウザなどで拾ってきたファイルを表示しようとする場合、ファイルを開くと中身は生データ、つまりバイト列となっています。

ファイルの中身を文字として認識させて表示したり加工したりするには、バイト列を文字または文字列に変換する必要があります。

また日本語のような多バイト文字(マルチバイトともいう、1バイト=256種で表現しきれない言語)を表示するには、エンコーディングを指定しなければなりません。

そのためのメソッドがNSStringクラスに有ります(やっと繋がった)。

0 CommentsPosted in 資料





Wave SoundTouch music system IV
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
06 | 2017/07 | 08
Sun Mon Tue Wed Thu Fri Sat
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

Wave SoundTouch music system IV
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR