iOS에서 iswalpha()
에 대한 문제가 있습니다.iOS의 iswalpha()가 MacOS에서 iOS와 동일한 값을 반환하지 않습니다.
Xcode 4.5에서 응용 프로그램을 조정하고 스페인어 문자 ú
을 iswalpha()
으로 전달하려고했습니다. 엑스 코드는 ú
의 int 값은 내가 실제 장치에서 응용 프로그램을 실행하려고 250
, iswalpha()
반환 0 표시; 하지만 시뮬레이터 (MacBook Air 10.8.2에서 Xcode를 실행합니다.)는 1을 반환합니다.
이유는 iOS가 MacOS와는 다른 와이드 문자 구현을 가지고 있기 때문일 수 있습니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
향상된 세부 : 스페인어 문자 ú
의 은 UTF-16 (유니 코드) 인코딩 int 값 250이다. MACOS처럼 iOS에서 0을 반환하는 것 이외에 iswalpha()가 1을 반환한다고 생각합니다.
댐 새 사용자가 여기에 이미지를 게시 할 수 없습니다. 너무 ú
의 UTF-16 인코딩을 참조하십시오 : 이 http://www.fileformat.info/info/unicode/char/fa/index.htm
Apple에 버그로 로그인해야합니다! – lnafziger
@Inafziger : 감사합니다. 나는이 문제가 영향을 미칠 것으로 추측했기 때문에 아마도 그렇게 할 것입니다. UITextView/UILabel 또한 __istype()을 많이 호출하는 것으로 보이며 내부 NSString의 유니 코드 인코딩 (UITextView/UILabel의 기본 인코딩)에는 실제 iOS 장치의 라틴 문자가 MACOS 시뮬레이터와 매우 다르다는 것을 알 수 있습니다. 나는 라틴 문자를 정확히 취급하는 iOS가 지금 얼마나 정확한지 알아내는 시간이 필요하다는 것을 의문의 여지가 없다. 그러나 유니 코드를 사용하지 않으려면 현명한 선택 인 것 같습니다. 가능한 한 UTF-8을 사용하십시오. – Roland