wcsftime
Visual Studio CRT와 함께 제공 되는 구현 에는 완전히 믿을 수없는 버그가있는 것 같습니다! 내가 말할 수있는 한 유니 코드를 지원하지 않습니다.
내부적으로 단일 바이트 (현재 단일 바이트 코드 페이지 사용)로 변환 한 다음를 호출 strftime
한 다음 다시 멀티 바이트로 이동합니다. 좋은 농담 이었어! 좁은 버전보다 낫지 않은데 왜 와이드 버전을 배송합니까?
내가 호출 wcsftime(L"ümlaut ş")
하면 움라우트는 작동하지만 (Latin-1에 포함되어 있기 때문에) s-cedilla는 작동하지 않습니다 (로 나옴 L"ümlaut ?"
).
내가 원하는 건 래퍼 작성하는 것입니다 wcsftime
그 반환 UTF-8 데이터를,하지만 난에서 유니 코드의 전체 범위를 얻을 수없는 것 wcsftime
(말할 것도 strftime
내가 뭘), 상관없이.
이러한 기능은 CRT에서 근본적으로 손상됩니까? strftime
크로스 플랫폼 애플리케이션에서 작동하는 형식 문자열 을 얻기 위해 자체 구현을 제공해야 합니까?
wcsftime의 알려진 문제점입니다. 선택한 로케일이 아닌 형식의 문자로 날짜 및 시간을 형식화해서는 안됩니다. GetDateFormat
/ GetTimeFormat
기능을 사용해 볼 수도 있지만 원하는대로 작동하는지 확실하지 않습니다. 다른 해결책은 wcsftime을 호출하기 전에 모든 문자를 16 진수 (예 : "ş"<-> "@ 015E")로 인코딩하고 호출 한 후 디코딩하는 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다