高分求一个Perl和javeScript的问题
我在Perl中加入javaScript语句。实现从一个文本框中传入文本本值到Perl函数中.具体如下:
(1)、这里用javaScript创建一个文本框并从中取得输入的文本值
<html>
<script type="text/javascript">
<!--
function myJavaScriptFunction()//响应函数
{
var args=new Array(2);
args[0] = document.getElementById("s2_1").value;
window.external.Call( "myPerlFunction", args);
}
// -->
</script>
<input type="text" id="s2_1">
<input type="button" name="s2" value="检索" onclick="myJavaScriptFunction();">
(2)、这个是Perl的函数
sub myPerlFunction()
{
my ($str) = @_;
if($str eq "输入文本")
{
&setView($str);
}
}
(3)、我进行这样的操作:
在文本框中输入"输入文本"几个字符后点按钮后取得字符,跟踪程序发现在Perl的函数即myPerlFunction()中的变量$str的值为“输入文本”;可是执行if($str eq "输入文本")判断时发现这判断并没有返回真值.
这是什么原因,怎么解决?$str的值明明是"输入文本"啊,请高手指教!谢谢!50分敬上
问题点数:50、回复次数:7Top
1 楼jiangsheng(蒋晟.Net[MVP])回复于 2006-03-18 11:25:37 得分 12
在传递参数的时候数组会分解为列表。如果你要传递一个数组,那么就传递数组的引用Top
2 楼dalin9603(dalin9603)回复于 2006-03-20 13:05:01 得分 0
可是用数字或是英文字符如输入“123”;这if($str eq "123")语句的结果是相等的Top
3 楼michael_g_hu(一代风云)回复于 2006-03-20 13:19:28 得分 12
建议你把变量的字符一个一个打印一下,肯定有地方不一样Top
4 楼DelphiNew(沙鼠)回复于 2006-03-20 19:47:23 得分 12
chomp一下就可以了。。Top
5 楼xyzxyz1111(程序员的自我修养)回复于 2006-03-21 11:19:25 得分 14
看看中文编码Top
6 楼dalin9603(dalin9603)回复于 2006-03-22 10:34:44 得分 0
谢谢大家!这问题我现在可以肯定是中文编码不一致,可是我用下面的转换后问题还是不能解决,在C中我用
MultiByteToWideChar(936, 0, result, -1, szwtemp, sizeof(wchar_t)*len);
WideCharToMultiByte(CP_UTF8, 0, szwtemp, -1, sztemp, sizeof(wchar_t)*len, NULL, NULL);转换中文编码,在perl中用<META charset="UTF-8">来设置也还是不行。Top
7 楼dalin9603(dalin9603)回复于 2006-04-27 21:08:13 得分 0
谢谢大家!这个因为“输入文本”是GBK字符,转化为UTF-8后正常.Top




