基本上,我正在尝试创建一个独特对象的对象,一组.我有一个很好的想法,就是只使用带有对象的JavaScript对象作为属性名称.如,
set[obj] = true;
Run Code Online (Sandbox Code Playgroud)
这很有效.它适用于字符串和数字,但对于其他对象,它们似乎都"散列"到相同的值并访问相同的属性.是否有某种方法可以为对象生成唯一的哈希值?字符串和数字如何做,我可以覆盖相同的行为吗?
我在XHTML网页中有Javascript传递UTF-8编码的字符串.它需要继续通过UTF-8版本,并对其进行解码.如何解码UTF-8字符串进行显示?
<script type="text/javascript">
// <![CDATA[
function updateUser(usernameSent){
var usernameReceived = usernameSent; // Current value: Größe
var usernameDecoded = usernameReceived; // Decode to: Größe
var html2id = '';
html2id += 'Encoded: ' + usernameReceived + '<br />Decoded: ' + usernameDecoded;
document.getElementById('userId').innerHTML = html2id;
}
// ]]>
</script>
Run Code Online (Sandbox Code Playgroud) 我一直在尝试从PHP获取crc32函数以匹配javascript生成的结果.我已经经历了4个不同的JavaScript CRC32库走了(1,2,3,4),我在网上和他们都为ASCII做工精细,但是当你扔掉它的UTF8字符,所有四个JS库输出相同的错误发现回答.
这个旧的stackoverflow问题似乎是最接近的答案,但它在我的测试中仍然不起作用.
例如:
PHP: crc32('tést') = 727386373
JavaScript的: crc32.genBytes('tést') = 3109344618
为方便起见,这是最紧凑的版本.
function stringToBytes ( str ) {
var ch, st, re = [];
for (var i = 0; i < str.length; i++ ) {
ch = str.charCodeAt(i); // get char
st = []; // set up "stack"
do {
st.push( ch & 0xFF ); // push byte to stack
ch = ch >> 8; // shift value down by …Run Code Online (Sandbox Code Playgroud)