W jaki sposób Java przechowuje znaki UTF-16 w 16-bitowym typie znaków?

WedługSpecyfikacja Java SE 7, Java używa standardu Unicode UTF-16 do reprezentowania znaków. Kiedy wyobrażasz sobieString jakprosta tablica 16-bitowych zmiennych, z których każda zawiera jeden znak, życie jest proste.

Niestety istnieją punkty kodowe, dla których 16 bitów po prostu nie wystarczy (wierzę, że było to 16/17 wszystkich znaków Unicode). Więc wString, nie stwarza to bezpośredniego problemu, ponieważ chcąc zapisać jeden z tych ~ 1.048.576 znaków za pomocądodatkowe dwa bajty, po prostu dwie pozycje tablicy w tymString zostanie użyty.

To, bez żadnego pozowaniabezpośredni problem, działaStrings, ponieważ zawsze mogą być dodatkowe dwa bajty. Chociaż jeśli chodzi o pojedyncze zmienne, które w przeciwieństwie do kodowania UTF-16 mająstała długość 16 bitów, w jaki sposób te znaki mogą być przechowywane, w szczególności, w jaki sposób Java robi to ze swoim2-bajtowy typ „char”?

questionAnswers(2)

yourAnswerToTheQuestion