Ich habe String String, wo es am Anfang und am Ende unbekannte Zeichen hat.Javascript - wie unbekannte Zeichen am Anfang und am Ende zu erkennen?
Wie erkenne ich, dass zunächst unbekannten Zeichen und die letzte? Ich versuchte folgendes, aber es passt nicht zu irgendwelchen \uxxxx
Listen wie:
\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f
?
Code:
var ab2str = function(buf) {
var bufView = new Uint8Array(buf);
var encodedString = String.fromCharCode.apply(null, bufView);
return decodeURIComponent(escape(encodedString));
};
function in(data) {
var ch = ab2str(data); ch = ch.toString('utf8');
switch (ch) {
case "\u0002":
console.log('>>> STARTED');
break;
case "\u0003":
console.log('>>> ENDED');
break;
default:
//var WINDOWS_1252 = '\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !"#$%&\'()*+,-./:;<=>[email protected][\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ';
console.log('????????? why always default ???????');
break;
}
}
EDIT: Datenstrom. \u0002
und \u0003
nicht übereinstimmend.
EDIT: Parser arbeitet
serial.onReceive.addListener(function(receiveInfo) {
if (receiveInfo.connectionId !== connectionId) {
console.log("FAIL: connectionId mismatch");
return;
}
var ch = ab2str(receiveInfo.data);
ch = ch.toString('utf8');
var check = ch.charCodeAt(0);
if(check == 2) {
console.log('>>> STARTED');
lineBuffer = "";
}
switch (ch) {
default:
lineBuffer += ab2str(receiveInfo.data);
console.log('>>> ???: ' , ab2str(receiveInfo.data));
var check_end = lineBuffer.charCodeAt(lineBuffer.length-1);
if(check_end == 3) {
var cake = lineBuffer.substring(1);
cake = cake.substring(0,cake.length-1);
console.log('>>> CAKE: ' , cake);
lineBuffer = "";
}
break;
}
});
Warum jQuery taggen? – GolezTrol
Es gibt mehr Zeichen als 0001 bis 001f. (etwa 65000 mehr in UCS2). Verwenden Sie charCodeAt, um zu sehen, welches Zeichen es tatsächlich ist: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt – GolezTrol
Nun, da ist Ihre Antwort. Das Zeichen ist 2 (=/u0002). Jetzt haben Sie bestätigt, dass es in der Tat ist, dass Sie wieder herausfinden können, warum Ihr Code es nicht gefunden hat. Vielleicht liegt es daran, dass "ch" die gesamte Zeichenfolge enthält, nicht nur das erste Zeichen, und deshalb stimmt der Fall nicht überein. – GolezTrol