기본적으로 10을 사용하여 숫자를 표현하기 때문에 기본적으로 많은 공간이 필요합니다. 기본 16 (16 진수)을 사용하는 것이 좋습니다. 예를 들어, 255 (3 자리)를 ff (2 자리)로 나타낼 수 있습니다. '.':
당신은 훨씬 더 많은 수의 기지 ... 유효한 쿼리 문자열 매개 변수 모든 문자 집합을 사용하여 그 개념이 더 걸릴 수 있습니다
AZ, AZ, 0-9, '을 - ','~ ','_ ','+ '
이렇게하면 작업 할 67 자의 기본 문자를 얻을 수 있습니다 (Wikipedia on QueryString 참조).
기본 10을 임의의 수 기준으로 변환하는 방법은 this SO post을 참조하십시오.
편집 : 링크 된 SO 게시물에
,이 부분을보고 :
당신이 필요로하는 거의 무엇
string xx = IntToString(42,
new char[] { '0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x'});
. 그냥 몇 문자가없는 추가하여 확장 :
yz.-을 ~ _ + 게시물 :-) 다시 기본 내가 작성하지 않을거야 (10)에 갈 수있는 방법을 누락되었음을
절차는 다음과 같습니다.
TOTAL을 호출합니다.
오른쪽 문자를보고 배열의 위치를 찾으십시오.
TOTAL = (배열의 문자 위치) 예 : 입력은 BA1입니다. TOTAL은 이제 1입니다 ("1"은 배열의 1 번 위치에 있기 때문에)
이제 첫 번째 문자의 왼쪽 문자를보고 배열의 위치를 찾습니다. TOTAL + = 47 * (배열의 문자 위치) 예 : 입력은 BA1입니다. TOTAL은 (47 * 11) + 1 = 518
입니다. 이제 이전 문자의 왼쪽 문자를보고 배열의 위치를 찾으십시오. TOTAL + = 47 * 47 * (배열의 문자 위치) 예 : 입력은 BA1입니다. 합계는 (47 * 47 * 10) + (47 * 11) + 1 = 243508
등입니다.
기본 10 진수를 47 진수로 변환 한 다음 다시 변환 코드가 제대로 작동하는지 확인하는 단위 테스트를 작성하는 것이 좋습니다. 유일한 문제는 URL의 길이, 당신은 다음, 에 숫자를 변환 번호로 다시 변환 할 수있는 경우는 기본 47 :-)
숫자가 가질 수있는 범위는 무엇입니까? 모든 숫자 (0-9)가 사용되고 있으며 숫자 2-8은 항상 0입니까? –
대답이 아니지만 솔루션은 압축의 근거를 고려해야합니다. 생성 된 페이지에 많은 내용이 포함되어 있다면 gzip 압축을 사용하는 것이 거의 확실합니다.이 압축을 통해 관리되는 마이크로 압축보다 훨씬 뛰어난 성능으로 압축 할 것입니다. 사용자가 URL을 입력하는 속도를 높이려면 답변을 고려해야합니다. – Pool
> 모든 숫자 (0-9)가 사용되며 숫자 2-8은 항상 0입니까? NO > 생성 된 페이지에 많은 내용이 포함되어 있으면 거의 확실하게 gzip을 사용합니다. 참조 페이지의 모든 링크에는 "MyServer.com/ShowSomething.aspx?IDs=1000000012100000002110000000131000000022&"의 href가 있습니다. .. "문제는 ID 매개 변수를 압축하는 것입니다. – Dave