エラー、バグ、質問 - ページ 2825

 
Vladimir Pastushak:

コードのどこが悪いのですか?

また、一般的なキャラクターリストで作業することの悪質さを説明するくらいなら、答えないほうがましです。

 
Alexey Viktorov:

また、一般的なキャラクターリストで作業することの悪質さを説明するくらいなら、答えないほうがましです。

プライベートでは

 

は、Webサイトのシンタックスハイライトが 不具合なのでしょうか?


b.ハイライトは機能ではありません

 
2020.08.15 13:07:42.660 Network 'xxxx': no connection to MetaQuotes-Beta
 

テキストファイルはあるが、エンコーディングがあらかじめ不明である。したがって、FILE_ANSIとFILE_UNICODEの どちらのフラグで開くかを決定する必要があります。

持っている人、自転車を分けてください。

 
fxsaber:

テキストファイルはあるが、エンコーディングがあらかじめ不明である。したがって、FILE_ANSIとFILE_UNICODEの どちらのフラグで開くかを決定する必要があります。

お持ちの方は、ぜひその自転車をご紹介ください。

ファイル内にエンコードラベルはないのでしょうか?

 

Unicodeは最初の2バイトにエンコードラベルがあることがあります。

VinAPI IsTextUnicodeにはこんなのもあります。https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-istextunicode

IsTextUnicode function (winbase.h) - Win32 apps
IsTextUnicode function (winbase.h) - Win32 apps
  • 2018.12.05
  • lastnameholiu
  • docs.microsoft.com
Determines if a buffer is likely to contain a form of Unicode text.
 
こんなことをしました。
  bool IsUnicode( const uchar &Bytes[] )
  {
    return((::ArraySize(Bytes) > 1) && (Bytes[0] == 0xFF) && (Bytes[1] == 0xFE));
  }

  void Unicode2ANSI( uchar &Bytes[] )
  {
    if (IsUnicode(Bytes))
    {
      const int Size = (::ArraySize(Bytes) >> 1) - 1;
      
      for (int i = 0; i < Size; i++)
        Bytes[i] = Bytes[(i << 1) + 2];
        
      ::ArrayResize(Bytes, Size);
    }
  }
しかし、この条件が常に正しいかどうかはわかりません。
 
fxsaber:
このようにしました。しかし、この条件が常に正しいかどうかはわかりません。

このトークンはオプションであり、LE、BE、UTF8 で異なる。これがない場合、理論的にはファイルの初期チャンクのヌルバイトの数を数えることができる。

 
Andrei Trukhanovich:

このトークンはオプションであり、LE、BE、UTF8 で異なる。これがない場合、理論的にはファイルの初期チャンクのヌルバイトの数を数えることができる。

この回避策を検討しました、ありがとうございます。それしかないようです。