Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在JS中将字符串/文本转换为EBCDIC?_Javascript_Ascii_Ebcdic - Fatal编程技术网

Javascript 如何在JS中将字符串/文本转换为EBCDIC?

Javascript 如何在JS中将字符串/文本转换为EBCDIC?,javascript,ascii,ebcdic,Javascript,Ascii,Ebcdic,我正在编写一个网站,该网站接受至少256个字符/字符串的用户输入(代码检查该要求),提示(也检查)用户选择转换(用户选择ASCII或EBCDIC),并将转换后的文本字符串输出到页面上(根据用户偏好使用ASCII或EBCDIC)。该代码能够打印出用户输入(检查256个字符的最小输入,并确保用户在按下Run!按钮之前选择一个单选按钮)。下面的代码包含以下注释,解释了这些功能: encoding.js: function myFunction() { //Get both elements

我正在编写一个网站,该网站接受至少256个字符/字符串的用户输入(代码检查该要求),提示(也检查)用户选择转换(用户选择ASCII或EBCDIC),并将转换后的文本字符串输出到页面上(根据用户偏好使用ASCII或EBCDIC)。该代码能够打印出用户输入(检查256个字符的最小输入,并确保用户在按下Run!按钮之前选择一个单选按钮)。下面的代码包含以下注释,解释了这些功能:

encoding.js:

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代码页或哪些代码页)。