1

ここで、Wide から Narrow に変換すると、一部の記号が に置き換えられる場合があることがわかります?。W2A 変換が文字列に適用されたときに、これらのケースを検出する方法。往復変換は方法ですが、高速ではありません。W2A関数の変換中に、変換が完全に可能ではなかったことを何らかの形でマークする必要があると思います。その情報を取得する方法は?

編集:例えばの場合

int WideCharToMultiByte(
  UINT CodePage, 
  DWORD dwFlags, 
  LPCWSTR lpWideCharStr, 
  int cchWideChar, 
  LPSTR lpMultiByteStr, 
  int cbMultiByte, 
  LPCSTR lpDefaultChar, 
  LPBOOL lpUsedDefaultChar 
);

最後の引数は、私が必要としているものを伝えています。W2Aはどうですか?ケースを検出する方法は?

4

1 に答える 1

2

これを確認するには、WideCharToMultiByteを直接使用します。そこでデフォルトの文字が使用されたことを示しており、変換プロセスに影響を与えるフラグがあります。

W2AdwFlagsゼロとNULL で同じ API を使用するlpUsedDefaultCharため、必要な情報はまったく照会されません。

于 2012-11-20T08:35:53.200 に答える