Hatalar, hatalar, sorular - sayfa 2825

 
Vladimir Pastushak :

Kodun nesi var?

Sıradan bir karakter listesiyle çalışmanın ne kadar tehlikeli olduğunu açıklamaktansa cevap vermemek benim için daha iyi.

 
Alexey Viktorov :

Sıradan bir karakter listesiyle çalışmanın ne kadar tehlikeli olduğunu açıklamaktansa cevap vermemek benim için daha iyi.

PM'de

 

Sitede sözdizimi vurgulaması mı bozuldu?


b.vurgulama bir işlev değildir

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

Bir metin dosyası var, ancak hangi kodlamayı içerdiği önceden bilinmiyor. Buna göre hangi bayrakla açılacağını belirlemeniz gerekir: FILE_ANSI veya FILE_UNICODE .

Kimde var bisikleti konuyla ilgili paylaşalım.

 
fxsaber :

Bir metin dosyası var, ancak hangi kodlamayı içerdiği önceden bilinmiyor. Buna göre hangi bayrakla açılacağını belirlemeniz gerekir: FILE_ANSI veya FILE_UNICODE .

Kimde var bisikleti konuyla ilgili paylaşalım.

Dosyanın içinde kodlama işareti yok, değil mi?

 

Bazen unicode'da ilk 2 bayt bir kodlama işaretine sahiptir.

Ayrıca bunun gibi WinAPI IsTextUnicode var 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.
 
Öyle yaptı.
   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);
    }
  }
Ama bu koşulun her zaman doğru olup olmadığını bilmiyorum.
 
fxsaber :
Öyle yaptı. Ama bu koşulun her zaman doğru olup olmadığını bilmiyorum.

bu işaret isteğe bağlıdır ve LE, BE ve UTF8 için farklı bir görünüme sahiptir. orada değilse, teorik olarak, dosyanın bazı ilk bölümlerindeki sıfır bayt sayısını hesaplayabilirsiniz.

 
Andrei Trukhanovich :

bu işaret isteğe bağlıdır ve LE, BE ve UTF8 için farklı bir görünüme sahiptir. orada değilse, teorik olarak, dosyanın bazı ilk bölümlerindeki sıfır bayt sayısını hesaplayabilirsiniz.

Bu geçici çözümü düşündüm, teşekkürler. Olması gereken yol bu gibi görünüyor.