为什么在Javascript中负字节读取为65533?

时间:2016-11-04 11:28:12

标签: javascript ajax servlets

我试图将文件从我的Java Servlet传输到一个小的HTML Web实现。

我正在使用对servlet的常规http ajax请求,问题是从0到7范围之外的Servlet发送的每个字节都在Javascript上读取为65533,从而在接收结束。

我一直在XHR,Jquery和AngularJS上做Ajax请求,每次都得到相同的结果。

为什么会这样?我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:0)

您的输入流被读取为 UTF-8 ,因此将其替换为 ISO-8859-1

UTF-8是一种多字节编码,可以表示任何字符。

ISO 8859-1是一种单字节编码,可以表示前256个Unicode字符。

UTF-8用特殊的“ Unicode替换字符”替换范围之外的某些字符,在您的情况下为 0xFFFD (十六进制为65533)。

答案 1 :(得分:-1)

����N�ne�]_�'ǭT��n��>��q���Z�L�L2��By��z���4$����X。 }�]ũ�<��� 〜〜W��5<...?}�Å?o�t��b�oD2ɖ�7Lq!���In���58�>N�?###��ll���HA��d�A�J&RF�q���]*T]�P�u�F��ud'9���א�V��D�����5C�����̞�<�aIz6܍X�p�P���?�d���O��F�R�ZXXX�Wi|��������Q)ew��8��:5�������。{{1} }��>��jSl��S。]TpP�G=L0�V�/��OfLLγ“��m�/��I���-|X4J����G *���3�<Ա�Ya���;�1�`;r�[���[co��u�˾HK�r���<����X)��+c�� IX @; $

������yII����zz��:V/�eP�7�IU�=���?J['������b!Gi�ba�Q^�!Gz����At�Le����x�X�e¨�o�!^�����eG&#0;%�O
o���$6��*�ײ�������1�������ܔ�V@kD�ʯH����E�� gԑ���QK7|�O3w*�0卖�!t'����&�/��[�u�Y�6���_�<�ݒ"m�?�?{�8�_���6{�%��&Dݓ������l�sb
���¢d],���k��?ؿ��&#0;z8�����0�k������Xi��:)�i�v�UׅY�h��>f���?�;�Z���NPE�g�T�