오류, 버그, 질문 - 페이지 2825

 
Vladimir Pastushak :

코드에 무슨 문제가 있습니까?

공통된 캐릭터 목록으로 작업하는 것의 유해성을 설명하는 것보다 대답하지 않는 것이 나에게 더 좋습니다.

 
Alexey Viktorov :

공통된 캐릭터 목록으로 작업하는 것의 유해성을 설명하는 것보다 대답하지 않는 것이 나에게 더 좋습니다.

오후에

 

사이트에서 구문 강조 표시 가 잘못되었습니까?


b.highlight는 함수가 아닙니다.

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

텍스트 파일이 있지만 어떤 인코딩이 포함되어 있는지 미리 알 수 없습니다. 따라서 FILE_ANSI 또는 FILE_UNICODE 중 어떤 플래그를 열 것인지 결정해야 합니다.

누가 가지고 있는지, 주제에 대한 자전거를 공유하십시오.

 
fxsaber :

텍스트 파일이 있지만 어떤 인코딩이 포함되어 있는지 미리 알 수 없습니다. 따라서 FILE_ANSI 또는 FILE_UNICODE 중 어떤 플래그를 열 것인지 결정해야 합니다.

누가 가지고 있는지, 주제에 대한 자전거를 공유하십시오.

파일 내부에 인코딩 표시가 없습니까?

 

때때로 유니코드에서 처음 2바이트에는 인코딩 표시가 있습니다.

https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-istextunicode 와 같은 WinAPI 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에 대해 다른 모양을 갖습니다. 그것이 없으면 이론적으로 파일의 일부 초기 부분에서 0 바이트 수를 계산할 수 있습니다.

 
Andrei Trukhanovich :

이 마커는 선택 사항이며 LE, BE 및 UTF8에 대해 다른 모양을 갖습니다. 그것이 없으면 이론적으로 파일의 일부 초기 부분에서 0 바이트 수를 계산할 수 있습니다.

이 해결 방법을 고려했습니다. 감사합니다. 그래야만 하는 것 같습니다.