IT関連

AS400/IBMi シフト文字を含めてバイト数を計算する

投稿日:2017年11月14日 更新日:

AS400いわゆるIBMiには、シフト文字という意味不明な文字がある。

普通「アイウエオ」なら10バイトのはずだが、AS400では、12バイトになる。これは先頭と最後が2バイト文字の場合は、前後にそれぞれ1バイトづつ足されるからだ。他にも発生条件があるのでまとめると、

発生条件は、

・先頭で2バイト文字の場合は+1バイト
・最後で2バイト文字の場合は+1バイト
・文字列で1バイト文字と2バイト文字が隣になれば+1バイト

になる。

「aありがとう」は、13バイト
「あaりがとう」は、15バイト
になる。

当然のことながら、

「arigatou」は、8バイト

だ。

それゆえ、こんなロジックを考えてみた。文字列を1つづつ見て、バイト数を計算するのだ。これしか考えられないのでこうしている。

いいやり方があったら教えてほしい。

 

スポンサーリンク




スポンサーリンク




-IT関連
-, , ,

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

PHP 自分の備忘録

知識 文字コード PHPはUTF-8N(ボムなし)で保存する。BOMはByte Order Markの略称。 改行コードはLinuxに入れる場合はLFで。 LF(UNIX.Linux.MacOS) L …

MarkDown記法 備忘録

ドットインストール様に教わったMarkDown記法。 256timesでなかば強制的に教えられたが、実際に覚えてみるといろんなところで使える。 Qiitaはもちろん使えるし、BackLogでも使える。 …

AS400/IBMi MacにACSを入れると固まったので対処法

MacにACSを入れて5250セッションを立ち上げてIBM iに接続したら、 意味不明な固まり方をしたので対処法を載せておきます。   固まった症状 エミュレータは立ち上がります。画面やフォ …

まだWin7の人は急げ Windows10 無償アップグレード まだいける

*最後に追記あります。作業をされるなら最後まで読んだ上でトライしてみてください。いづれにせよ私は何の責任も負いません。   皆さんご存知だと思いますが、   Windows7のパソ …

Windows Lenovoのリカバリー・セーフモード・バイオスのファンクションキー

リカバリーは「F11キー」 セーフモードは「F8キー」 バイオスは「F1キー」 を電源を押したあと、Windowsが立ち上がる前に連打する。 それだけ。私の備忘録なので違ったらゴメンなさい。

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に