는 I가 0 끝나는 문자열을 전송하는 방법을 사용할 수있다 :UTF-8 문자열을 변환하는 방법?
버퍼 "UTF-8"또는 "ISO-8859"로 부호화 된 문자열ssize_t send_utf8 (char *buffer)
. 이 함수는 버퍼를 보내는 다른 함수를 사용하여 제로로 끝나는 문자열을 전송한다 (이 기능은 투명하고, 상기 버퍼는 이진 데이터 일 수있다) :
버퍼가 버퍼 전송하여야하며 NUM은 수있다ssize_t send (void *buffer, size_t num)
바이트.
이 방법을 구현했지만 send() 메서드를 호출하기 전에 UTF-8로 코딩 된 버퍼를 변환해야합니다.
ssize_t send_utf8 (char *buffer) {
// UTF-8 conversion?
net_http_send(buffer, strlen(buffer));
return connection->content_len; // number of bytes written
}
라이브러리를 사용해야합니까, 아니면이 버퍼를 신속하게 변환 할 수 있습니까? 미리 감사드립니다.
* 컴퓨터의 모든 * 데이터는 궁극적으로 "바이너리"입니다. 정교하게 주시겠습니까? 아마도 해당 "2 진"데이터가있는 예제 문자열을 표시 할 것입니까? –
UTF-8은 이미 비트 수준까지 지정된 인코딩입니다. "이진 데이터"를 정의하십시오. – delnan
당신은 문제를 요구하고 있습니다. utf-8로 인코딩 된 문자열을 바이너리 데이터로 올바르게 처리 할 수있는 응용 프로그램은 거의 없습니다. 제대로 utf-8로 인코딩되지 않은 데이터에 넘어 가지 않으면 문자열이 정규화 될 때 데이터가 임의로 손상됩니다. 상용구는 먼저 이진 데이터를 인코딩하는 것이며 base64는 * 매우 * 공통입니다. –