错误、漏洞、问题 - 页 2825

 
Vladimir Pastushak:

这个代码有什么问题?

我也宁愿不回答,也不愿解释用一般的人物名单来工作的恶果。

 
Alexey Viktorov:

我宁愿不回答这两个问题,也不愿意解释用通用人物名单工作的恶果。

在私下里

 

网站上的语法高亮 有问题吗?


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是不同的。如果缺少它,理论上你可以计算文件的某些初始块中的空字节数

考虑过这个变通办法,谢谢。似乎是唯一的办法。