간단한 ASCII 기반 프로토콜을 구현하는 소프트웨어를 향상시키고 있습니다.다국어 필드로 ASCII 프로토콜 개선하기
프로토콜은 여기 ... 간단한 메시지 같은 약간 보이는 무엇의 예입니다 (하지만 동일하지를, 나는 당신에게 실제 프로토콜을 표시 할 수 없습니다) :
AUTH 1 1 200<CR><LF>
으로 우리는 비슷하게 보이는 응답을 얻습니다.
230 DEVICE 1 STATE AUTH 200 OUTPUT 1 NAME "Photo Black"<CR><LF>
"Photo Black"이라는 이름은 데이터베이스 sqlite 데이터베이스에서 가져옵니다. 나는 외국어를 지원하기 위해 그것을 향상시켜야한다. 그래서 필자는 "Photo Black"필드가 "선택적으로"따옴표 사이의 UTF-8 문자열로 인코딩되어야한다고 생각했습니다. 클라이언트 응용 프로그램에서 인용 부호로 된 문자열을 해석하고 곧바로 UTF-8 또는 일반 ASCII로 인식 할 수 있도록 표준이 있는지 궁금합니다. 프로토콜을 다시 작성하지 않으려 고합니다. 너무 많은 작업이 필요합니다. 클라이언트가 일부 스페인어 또는 스웨덴어 이름을 인식하도록 인코딩하기 만하면됩니다.
필자는 필드가 항상 UTF-8로 해석되기를 원하지 않습니다. 당신은 C++에서 0xFF를 입력하는 방법을 알고 컴파일러는 이것이 16 진수 문자열이라는 것을 알고 있습니다 ... UTF-8에 해당하는 것이 있습니까? 유감스럽게도 총을 뛸 수도 있지만 일반적으로 UTF-8 인코딩 및 국제화에 익숙하지 않습니다.
이것은 IMHO, 정말 나쁜 생각입니다. 이 코드를 다루는 코드는 모두 8 비트 코드이거나 그렇지 않습니다. 그렇지 않다면 거기에 U를 넣으면 도움이되지 않습니다. 그렇다면 문자열의 중간에서 여전히 바이트를 가져 오는 것입니다. 다른 프로그램이 중간에 그것을 분할한다면 어떨까요? – bmargulies
"U"는 문자열 내에서 UTF-8을 예상하는 표시기입니다. 나는 최후의 비트에서 무언가가 짓밟 으면 문제가있을 것이라는 데 동의한다. - 내가 마지막 단락에서 말했던 것처럼. 왜 U 접두사가 아닌 문자열을 U 접두사가 아닌 문자열과 다르게 처리해야합니까? 나는 문자열 내에서 * 스위치를 제안하지는 않지만 문자열의 데이터 전체를 UTF-8로 취급하거나 전체를 ASCII로 취급한다. 문자열의 끝을 찾는 것이 문제가되지 않아야합니다. –
예 양쪽에서 모두 제어 할 수 있습니다. 하지만 다른 끝에는 foxpro로 작성된 소프트웨어가있는 또 다른 개발자가 있습니다. 나는 그가 "결국"사용할 ActiveX 컨트롤로 새로운 클라이언트를 작성할 것이지만 다른 공급 업체에 재배포 할 것입니다. 나는 시간을 절약하려고 노력하고있는 것 같아. 나는 또한 텔넷으로 서버에 메시지를 보내는 기능을 좋아한다. – Matt