Javascript 如何在JS中将字符串/文本转换为EBCDIC?
我正在编写一个网站,该网站接受至少256个字符/字符串的用户输入(代码检查该要求),提示(也检查)用户选择转换(用户选择ASCII或EBCDIC),并将转换后的文本字符串输出到页面上(根据用户偏好使用ASCII或EBCDIC)。该代码能够打印出用户输入(检查256个字符的最小输入,并确保用户在按下Run!按钮之前选择一个单选按钮)。下面的代码包含以下注释,解释了这些功能: encoding.js:Javascript 如何在JS中将字符串/文本转换为EBCDIC?,javascript,ascii,ebcdic,Javascript,Ascii,Ebcdic,我正在编写一个网站,该网站接受至少256个字符/字符串的用户输入(代码检查该要求),提示(也检查)用户选择转换(用户选择ASCII或EBCDIC),并将转换后的文本字符串输出到页面上(根据用户偏好使用ASCII或EBCDIC)。该代码能够打印出用户输入(检查256个字符的最小输入,并确保用户在按下Run!按钮之前选择一个单选按钮)。下面的代码包含以下注释,解释了这些功能: encoding.js: function myFunction() { //Get both elements
function myFunction() {
//Get both elements
const ascii = document.getElementById('ascii')
const ebcdic = document.getElementById('ebcdic')
let str = document.getElementById("text_id");
let a = "ASCII Code is == > ";
// Below checks to see if the user selects writed more than 255 chars
if (str.value.length < 256) {
console.log("null");
return null;
// prints and returns null if the user entered a string less than 256 characters
}
// Below checks to see if the user selects a radio button
let radio_selected = false;
document.querySelectorAll('input[type="radio"]').forEach(function (radio) {
if (radio.checked) {
radio_selected = true;
}
})
if (!radio_selected) {
console.log("The radio has not been checked, please select a button");
return;
}
//If one of the elements is checked it triggers a condition, if the other is cheked it triggers the other condition
if (ascii.checked) {
for (let i = 0; i < str.value.length; i++) {
document.getElementById("demo").innerHTML = document.getElementById("demo").innerHTML + str.value.charCodeAt(i);
}
}
else if (ebcdic.checked) {
for (let i = 0; i < str.value.length; i++) { //loop to check all values entered
//Code to convert text to EBCDIC, need help with this
}
}
}
函数myFunction(){
//获取两个元素
常量ascii=document.getElementById('ascii')
const ebcdic=document.getElementById('ebcdic'))
让str=document.getElementById(“text_id”);
设a=“ASCII码为==>”;
//下面检查用户选择的写入字符是否超过255个
如果(str.value.length<256){
console.log(“null”);
返回null;
//如果用户输入的字符串少于256个字符,则打印并返回null
}
//下面检查用户是否选择了单选按钮
让收音机_selected=false;
document.querySelectorAll('input[type=“radio”]”)。forEach(函数(radio){
如果(无线电检查){
所选收音机=真;
}
})
如果(!已选择无线电){
console.log(“收音机未被检查,请选择一个按钮”);
返回;
}
//如果其中一个元素被选中,它将触发一个条件;如果另一个元素被选中,它将触发另一个条件
如果(ascii.选中){
for(设i=0;i
1.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Converter for ASCII or EBCDIC</title>
<link href="style.css" rel="stylesheet" type="text/css"/>
<script src="encoding.js" defer></script>
</head>
<body style="text-align:center;">
<label for="text">Enter a text that is at least 256 characters long</label><br>
<input type="text" id="text_id" name="text" minlength="256">
<p>Select the following:</p>
<div>
<input id="ascii" type="radio" name="encoding" value="ascii">
<label for="ascii">ASCII</label>
</div>
<div>
<input id="ebcdic" type="radio" name="encoding" value="ebcdic">
<label for="ebcdic">EBCDIC</label>
</div>
<button onclick="myFunction()" type="button">"Run!"</button>
<label for="button">"Run!"</label>
<p id="demo" style="color:red;">
</body>
</html>
ASCII或EBCDIC转换器
输入长度至少为256个字符的文本
选择以下选项:
ASCII码
EBCDIC
“快跑!”
“快跑!”
我一直在浏览这个网站,寻找任何文本/字符串(不是单个字符)转换为EBCDIC的迹象。到目前为止,我只看到了EBCDIC到ASCII、反向和单个字符的转换,但没有看到字符串/文本到EBCDIC转换的迹象。我不是javascript程序员,因此我无法帮助编写代码,但我将尝试概述编写ASCII到EBCDIC转换代码所需的步骤
- 您需要构建一个256元素的转换表
- 表中的索引是通过为输入字段的每个字符调用charCodeAt()得到的值
- 该索引处的元素值是对应ASCII字符的EBCDIC值。例如,让我们以字符“A”为例。它具有ASCII值65(十进制)和EBCDIC值193(十进制)。因此,索引65处的条目保存值193
- 如果ASCII字符在EBCDIC表中没有表示形式,请使用一些特殊值,例如991
- 对每个(可打印的)ASCII字符执行此操作
- 填写完(可打印)ASCII字符的所有条目后,需要填写其余条目。再次使用一些值,例如992
- 循环使用每个输入字符的charCodeAt()值索引到表中。然后,找到的值是EBCDIC中字符的值,或不可翻译字符(991)或不可打印字符(992)的指示
希望这能帮助您从编码开始。EBCDIC?这个节目是为60年代的时间旅行者准备的吗?有什么问题吗?如果您知道如何将单个字符转换为EBCDIC,只需循环字符串中的字符即可。您希望实现什么?charCodeAt()返回表示字符编码值的1到3位数字。连接所有这些1到3位数字只会产生一个长字符串,其中单个字符的边界消失。我宁愿显示值的十六进制表示形式。您应该清除元素演示的内容。目前,只要按下Run按钮,新数据就会附加到以前的结果中。JS似乎不像其他语言那样提供iconv()函数。iconv()用于将一个代码页的字符串数据转换为另一个代码页。由于缺少此功能,您需要为您选择的代码页自行实现此功能(请注意,不只是EBCDIC;您需要决定要支持哪个EBCDIC代码页或哪些代码页)。