4D-JUG
Would you like to react to this message? Create an account in a few clicks or log in to continue.

kTECUsedFallbacksStatusエラーについて

Go down

kTECUsedFallbacksStatusエラーについて Empty kTECUsedFallbacksStatusエラーについて

投稿 by osaru on 2019-10-22, 1:03 pm

4D v16.6 : macOS Mojave
Code:
$s:=Convert to text($blob;"Shift_JIS")
にて、㈱入りCSVファイルでkTECUsedFallbacksStatusエラーが出ます。

ググってみると2009年や2010年の記事が出てくるのですがまだ解決できていないのでしょうか?

Code:
$s:=BLOB to text($blob;Mac text without length)
とすると回避できる様ですので、エンコーディングが17番指定のときだけ、BLOB to textに置き換えて処理するようにしました。

osaru

投稿数 : 61
登録日 : 2017/08/14

トップに戻る Go down

kTECUsedFallbacksStatusエラーについて Empty Re: kTECUsedFallbacksStatusエラーについて

投稿 by miyako on 2020-01-06, 3:30 pm

kTECUsedFallbacksStatusエラーは,
指定されたエンコーディングでは表現できない文字があるときに返されます。

Macの場合,Shift_JISとは,通産省が定めた「公式の」SJISのことで,
一般にデファクトスタンダートとされているSJIS,
つまりコードページ932(Windows-31J)に収録されているような
IBM/Microsoft/NECのベンダー独自拡張は収録されていません。

https://ja.wikipedia.org/wiki/Shift_JIS
https://ja.wikipedia.org/wiki/Microsoftコードページ932
https://ja.wikipedia.org/wiki/MacJapanese

㈱という文字は,厳密なSJISには含まれていませんので,
Windows-31J(Windows)
あるはMacJapaneseエンコーディング(Mac)
で変換する必要があります。(MacとWindowsではコードが違います)

なお,Windowsの場合,「純粋な」Shift_JISというものをシステムがサポートしていないため,
Shift_JIS=Windows-31Jとなります。

例:

$s:=Convert to text($blob;"Windows-31J")



$s:=BLOB to text($blob;Mac text without length)

これは良い方法ではありません。(ごめんなさい)

Mac...というのは,Unicode/Shift_JISを双方向に変換できるように作られた特殊なShift_JIS(4Dオリジナル)のことです。4D 2003/2004では,この文字コードが全面的に使用されていました。

なかなか良くできた文字コードなのですが,以前のバージョンと同じ動作を再現するため,
32,000バイトで切り捨てられるようになっています(ドキュメント参照)。

miyako

投稿数 : 375
登録日 : 2016/07/05

トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可