read 함수를 사용하여 TCP 소켓에서 일부 텍스트 (ISO-8859-1로 알려짐)를 읽은 다음 몇 가지 기본 부분 문자열 대체를 수행합니다. 마지막으로 문자열을 GSM에 해당하는 것으로 변환하고 싶습니다.ISO-8859-1 문자열을 C에서 GSM 문자열로 변환
바람직하게 (그러나 반드시) 나는 이런 식으로 뭔가를 할 것이라고는 :
size_t i;
for (i=0; i<size; i++) {
switch (string[i]) {
case 65:
//Convert this character
case 163:
//Convert this character (the pound symbol £)
}
}
나는 읽기 쉽도록 스위치를 선호하지만,뿐만 아니라 경우-else 문으로 간주했다.
정상적인 ASCII 문자는 작동하지만 ISO-8859-1의 맨 위 부분이 모든 종류의 문제를 일으키고 있습니다. 분명히 그들은 여러 문자로 간주됩니다. 전환을 진행하는 방법에 대한 도움을 주시면 감사하겠습니다.
ISO-8859-1의 위쪽 절반에있는 문자가'string'에 여러 항목으로 나타나는 경우 실제로 ISO-8859-1로 인코딩 된 문자열이 아닌 * 가능성이 매우 높습니다. 또한 [iconv'] (http://linux.die.net/man/1/iconv) 라이브러리 기능을 조사하십시오. – zwol
나는 ISO-8859-1의 상반부가 여러 항목으로 표시되기 때문에 문제가 생기는 이유는 확실하지 않습니다 ... 하지만 케이스 163 (파운드 기호 £)을 만들려고 할 때 컴파일러 시작 불편 : 케이스 라벨 값이 최대 값을 초과했습니다 –
[무엇을 시도 했습니까?] (http://whathaveyoutried.com/) – ecatmur