文字コード絡みの QC は結構ありまして。それを回避するにはテクニックではなく知識が必要となります。「QC 探せ」 というのは簡単な事なのですが、思ってもみない所に不具合があったりして、QC をあたっても気付かない事が多いです。
Report No: 47608 Status: Closed
under XP/Luna interface, TComboBox can not handle DBCS character correctly.
http://qc.embarcadero.com/wc/qcmain.aspx?d=47608
QCWIN:Defect_No=47608
ANSI 版 Delphi の問題です。この問題は Delphi 2009 で解決されている事になっていますが、Unicode 化した事で "結果的に" 問題が解決しただけです。
Report No: 58386 Status: Closed
UTF8Encode does not support 'Surrogates Pair'
http://qc.embarcadero.com/wc/qcmain.aspx?d=58386
QCWIN:Defect_No=58386
ANSI 版 Delphi の問題です。この問題は Delphi 2009 で解決されています。
Report No: 62637 Status: Closed
Add UTF-32 property to TEncoding [Win32]
http://qc.embarcadero.com/wc/qcmain.aspx?d=62637
QCWIN:Defect_No=62637
Report No: 89066 Status: Closed
Add the following methods to TEncoding
http://qc.embarcadero.com/wc/qcmain.aspx?d=89066
QCWIN:Defect_No=89066
TEncoding で UTF-32 が使えない事に対しての要望です。いずれも Cannot Fix で Close されています。
Report No: 65155 Status: Closed
AnsiLeftStr/AnsiRightStr/AnsiMidStr does round-trip conversion.
http://qc.embarcadero.com/wc/qcmain.aspx?d=65155
QCWIN:Defect_No=65155
この問題は Delphi 2009 Update 3 で解決されています。基本的に ANSI 版 Delphi の問題ですが、Update 3 の適用されていない Delphi 2009 では AnsiStrings.AnsiLeftStr() / AnsiStrings.AnsiMidStr() / AnsiStrings.AnsiReverseString() / AnsiStrings.AnsiRightStr() で同様なラウンドトリップ問題が発生します。
Report No: 67468 Status: Open
Control-String of 2-digits should be RawByte.
http://qc.embarcadero.com/wc/qcmain.aspx?d=67468
QCWIN:Defect_No=67468
この問題は解決されていません。コントロール文字を '+' で連結する / しないによって挙動が変わるため、ソースコードを普通に眺めただけでは挙動を推測する事は不可能です。
Report No: 67959 Status: Closed
UnicodeStringToUCS4String / WideStringToUCS4String do not handle surrogate pairs correctly
http://qc.embarcadero.com/wc/qcmain.aspx?d=67959
QCWIN:Defect_No=67959
この問題は Delphi XE で解決されています。
Report No: 78134 Status: Closed
WideCharToMultibyte() of Windows 2000 miscalculates the size of the buffer
http://qc.embarcadero.com/wc/qcmain.aspx?d=78134
QCWIN:Defect_No=78134
この問題は解決されていません (Cannot Fix で Close)。原因は OS のバグですが、RTL の仕様としては正しくありません。ISO-2022-JP は日本においてメールのデファクトスタンダード的な文字コードですから、メール絡みのアプリケーションを作る時には注意が必要です。
Report No: 78903 Status: Closed
HTTPApp.HTMLEncode does not correctly encode a string
http://qc.embarcadero.com/wc/qcmain.aspx?d=78903
QCWIN:Defect_No=78903
この問題は Delphi XE Update 1 で解決されています。文字コードとは直接関係ありませんが、HTTPApp.HTMLDecode() との往復変換が不可能になります。
Report No: 83508 Status: Close
When the string length is 1 and index is 1, the UnicodeString version of CharToElementIndex() returns 0.
http://qc.embarcadero.com/wc/qcmain.aspx?d=83508
QCWIN:Defect_No=83508
Unicode 版 Delphi の問題です。この問題は XE3 で解決されています。Delphi の RTL は "コードポイント単位で文字列を操作する関数/クラス" を持っていないため、MECSUtils 等の外部ライブラリを使わずにコードポイント単位での文字列操作を行うには SysUtils.CharToElementIndex() が不可欠なのですが、その肝心な関数にバグが潜んでいます。
Report No: 83566 Status: Open
StringOf() of AnsiString version is not available.
http://qc.embarcadero.com/wc/qcmain.aspx?d=83566
QCWIN:Defect_No=83566
Unicode 版 Delphi の問題です。この問題は解決されていません。
Report No: 87435 Status: Closed
HTTPApp.HTMLDecode() does not support surrogate pair.
http://qc.embarcadero.com/wc/qcmain.aspx?d=87435
QCWIN:Defect_No=87435
この問題は XE2 で解決されています。Indy の IdStrings.StrHtmlDecode() はそもそも数値参照文字を処理しないので、この問題は発生しません。
QC のうち、Vote できるものに関しては Vote をお願い致します。Vote の方法に関しては こちら をどうぞ。
経験則ですが、QC を潰す最も効果的な方法は、Field Test 開始 1ヶ月以内 に Field Test 用フォーラムでガンガンプッシュする事です。この期間を過ぎると Access Vioration を引き起こすような重篤な問題が最優先されるため、どうしても後回しになってしまいます。それと、アップデータやHotFix による修正はあまり期待できません (問題のトリアージやってる人間の匙加減一つですから)。また、パッシブフェーズに入った製品のバグ修正は行われないので注意が必要です。
BACK |