アプリ版:「スタンプのみでお礼する」機能のリリースについて

Accessでは全角、半角にかかわらず2バイトでカウントます
SQL内で、StrConv(〇〇〇,128)を試しましたが盛大に文字化けします。
VBAでも文字化けします。

使用している関数はこんな感じです。
 Midb(StrConv(〇〇〇,128)),1,40)

文字化けしない方法があったら教えてください。
よろしくお願いいたします。

A 回答 (2件)

理屈は理解できてますか?



> Accessでは全角、半角にかかわらず2バイトでカウントます

内部ではUnicodeという文字コード系が使われています。
このコード系は、全角とか半角とかは関係なく、 1文字=16bit(2バイト) に割り当てています。

> StrConv(〇〇〇,128)

これは、既にあるように、 Unicodeからシステムで設定されたコード(日本語版の場合はShift_JIS)に変換するものです。
Unicodeの1文字→Shift_JISの対応する1文字 に変換します。

UnicodeとShift_JISはまったく別なので、Shift_JISで書かれた文字列をUnicodeとして解釈すれば、文字化けします。

今回の場合なら、Shift_JISの1文字→Unicodeの対応する1文字 というさっきとは逆の変換が必要です。
    • good
    • 0

先ずは全角文字に変換するのであれば


「StrConv(〇〇〇,128)」ではなく、「StrConv(〇〇〇,4)」ではないのでしょうか。
動作確認はしていませんが、お試しください。
StrConv関数 …文字列を指定した文字種に変換する
https://officek.net/access/a-function/al-string/ …

老婆心
2バイト(全角?)化する理由はわかりませんが、ある特定の文字数のみを取り出したいのであれば、MID関数でもいいのではないですか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています