문제

나는 왜 Base64를 통해 Hex 인코딩을 사용하고 싶어하는지에 대해 조금 궁금합니다. 기본 64가 더 효율적 인 것 같습니다. 특히 데이터베이스가 항상 HEX 인코딩을 사용하는 것처럼 보이는 이유는 무엇입니까? 역사적 문제입니까, 아니면 Hex 인코딩에 대해 뭔가 빠진 것입니까?

도움이 되었습니까?

해결책

당신은 진짜 괴짜 여야합니다 BASE64 화면에서.

~ 안에 Oracle, 내가 달릴 때 HEXTORAW, 나는 무엇이 있는지에 대한 아이디어를 얻을 수 있습니다 RAW 필드, 그러나 나는 할 수 없었습니다 BASE64.

내가 많이 볼 때 0x3F인코딩이있는 것이 있다는 것을 알고 있습니다.

그리고 내부적으로, 이것들은 단지 이진 바이트 일 뿐이며, 그것들을 인코딩 할 필요는 없지만 화면의 다른쪽에있는 사람에게 보여줄 필요가 없습니다.

다른 팁

효율적인 공간 사용량과 가독성 사이의 좋은 타협입니다. 비트 패턴은 16 진수에서는 매우 명백 해지고 다른베이스는 명확하지 않습니다.

읽기가 더 쉬운 것은 0x8080 또는 32896입니까? 나는 16 진수라고 말할 것이다.

또한 각각 16 진수의 멋진 속성은 니블과 동일합니다 (따라서 각 쌍은 바이트와 같습니다).

베이스 64보다 머리에 16 진수를 이해하는 것이 훨씬 쉽습니다.

데이터베이스까지는 데이터가 표시되는 방식과 저장 방법간에 차이가 있음을 명심하십시오. 데이터를 16 진로 표시하는 것 같습니다.

Base64는 대문자와 소문자를 모두 사용하기 때문에 결과 값을 Windows의 파일 이름으로 사용하려는 경우 Base64가 작동하지 않습니다. 비슷한 이유로 사용할 수없는 다른 시간이 있다고 확신합니다.

가독성에 관한 다른 답변과 일치합니다 - 육각 숫자는 8 비트 바이트에 멋지게 일치하고 Base64 "숫자"는 그렇지 않으며, 하나의 숫자는 두 바이트의 일부를 포함 할 수 있습니다.

문자열 스토리지 ( "잠재적으로"XML 안전 인코딩 포함)의 경우 Base64의 4/3 대신 5/4 팽창이므로 ASCII 85를 사용하면 훨씬 더 많은 효율성을 얻을 수 있습니다.

그러나 Base64를 "읽는"것은 더 어렵습니다. 그리고 많은 응용 프로그램이 그것을 지원하지 않기 때문에 인코딩 및 디코딩을 수행하기 위해 자신의 클래스/기능을 작성해야합니다.

귀하의 데이터베이스가 실제로 데이터를 바이너리로 저장하고 있다고 생각하지만 쿼리 편집기는 HEX 인코딩을 사용하여 표시합니다. 이것이 SQL Server Query Analyzer가 수행 할 작업입니다.

나는 그것이 개인적인 취향의 문제 일 뿐이라고 생각합니다 ... 16 진수는 Base32 또는 Base64에서 무언가를 읽는 것이 훨씬 쉽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top