zoukankan      html  css  js  c++  java
  • apache服务器下网页访问乱码解决办法

    今天在浏览器下加载VLC控件来显示视频。html代码是网上down的,

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>视频剪辑</title>
    <script type="text/javascript" charset="UTF-8">
    <!-- 屏蔽右键
       // document.oncontextmenu=function(e){return false;}  
    //-->
    var vlc; // VLC对象
    var itemId;  // 播放列表中播放节目的id
    var vlcSound; // vlc音量大小(初始化默认为50)
    var videoLength; // 视频总时长
    var then_time; // 播放开始时间(播放开始的日期,看下面实现代码,它是毫秒哦)
    var isPlaying=0; // 是否播放状态 (0 未播放 1 播放)
    // 初始化 === 很重要哦,控制程序的入口
    function initPlayUrl(){
     vlc=document.getElementById("vlc");
     // 添加播放地址
     //vlc.playlist.add(window.opener.vdUrl);
     // 播放
     // vlc.playlist.play();
     // 添加播放地址方式2 -- 推荐用下面的方法控制播放列表
     var vedio_url=window.opener.vdUrl;
     itemId= vlc.playlist.add(vedio_url);
        vlc.playlist.playItem(itemId);
       
        // 获取VLC当前音量
        vlcSound=vlc.audio.volume;
        // 设置VLC音量值
        document.getElementById("vlc_sound").value=vlcSound;
        // 播放按钮不可用
        document.getElementById("play_button").disabled=true;
       
        // 检查播放节目的状态 -- 注意这个是延时操作哦(setTimeout以毫秒为单位,这里延时0.5秒)
        setTimeout(checkVedioStatus,500);
    }

    // 检查播放节目的状态
    function checkVedioStatus(){
        if(vlc.input.state>2 && vlc.input.state<5){
         isPlaying=1;
         // vlc.input.time 当前播放时长,单位毫秒
         // vlc.input.length 节目总时长,单位毫秒
         videoLength=parseInt(vlc.input.length/1000);
         var temp_total_time=parseTime(videoLength);
         // 总时长设置
         document.getElementById("vedio_length").value=temp_total_time;
         // 当前可以输入时间段跳转
         document.getElementById("time_change").disabled=false;
         // 获得当前系统时间
         then_time=new Date().getTime();
         // 计算当前播放时间点
         checkTime();
        }else{
         // 如果不是播放状态就在延时执行
         setTimeout(checkVedioStatus,500);
        }
    }

    // 实时检测系统时间,计算视频的播放时长(典型的秒表功能)
    function checkTime(){
     if(isPlaying==1){
      setTimeout("checkTime();",50);
      var temp_time=parseInt((new Date().getTime() - then_time)/1000);
      document.getElementById("current_video_time").value=parseTime(temp_time);
     }
    }

    // 改变播放地址
    function changeNewBeginTime(){
     // vlc.input.time 获取当前播放时间(毫秒)/也可重设当前播放时间点
     var jumpTime=document.getElementById("change_length").value;
     if(jumpTime!=""){
      if(jumpTime>videoLength){
       alert("对不起,输入值大于视频总时长...");
       return;
      }
      vlc.input.time=jumpTime*1000;
      then_time=new Date()-jumpTime*1000;
     }
    }

    // 把秒转换为时间格式(HH:mm:ss)
    function parseTime(numLength){
     var h_time=0;
     var m_time=0;
     var s_time=0;
     if(numLength>=60){
      m_time=parseInt(numLength/60);
      s_time=parseInt(numLength%60);
     }else{
      s_time=numLength;
     }
     if(m_time>=60){
      h_time=parseInt(m_time/60);
      m_time=parseInt(m_time%60);
     }
     
     if(h_time<10){
      h_time="0"+h_time;
     }
     if(m_time<10){
      m_time="0"+m_time;
     }
     if(s_time<10){
      s_time="0"+s_time;
     }
     return h_time+":"+m_time+":"+s_time;
    }

    // 停止播放
    function stopPlay(){
     vlc.playlist.stop();
     isPlaying=0;
     
     // 修改播放/停止按钮状态
     document.getElementById("play_button").disabled=false;
        document.getElementById("stop_button").disabled=true;
       
        // 修改跳转按钮的状态
        document.getElementById("change_length").value="";
        document.getElementById("time_change").disabled=true;
       
        // 当前视频播放时间点清空
        document.getElementById("current_video_time").value="";
    }
    // 重新播放
    function repeatPlay(){
     vlc.playlist.play();
     setTimeout(checkVedioStatus,500);
     // 修改播放/停止按钮状态
     document.getElementById("play_button").disabled=true;
        document.getElementById("stop_button").disabled=false;
    }
    // 静音
    function noSound(){
     if(vlcSound>0){
      vlcSound=0;
     }
     vlc.audio.toggleMute();
     vlcSound=vlc.audio.volume;
     document.getElementById("vlc_sound").value=vlcSound;
     if(vlcSound==0){
      // document.getElementById("no_sound").value="&nbsp;恢复音量&nbsp;";
      document.getElementById("no_sound").value=" "+"恢复音量"+" ";
     }else{
      // document.getElementById("no_sound").value="&nbsp;静&nbsp;&nbsp;&nbsp;&nbsp;音&nbsp;";
      document.getElementById("no_sound").value=" "+"静"+"  "+"音"+" ";
     }
    }
    // 音量加减
    function soundChange(nums){
     if(nums<0 && vlcSound==0){
      alert("音量最小,不能再减少音量....");
      return;
     }
     vlcSound+=nums;
     if(vlcSound<=0){
      vlcSound=0;
      document.getElementById("no_sound").value=" "+"恢复音量"+" ";
     }else{
      // 当音量>0的时候,都要把静音的标识打开
      document.getElementById("no_sound").value=" "+"静"+"  "+"音"+" ";
     }
     if(vlcSound>200){
      alert("音量最大,不能再增大音量....");
      vlcSound=200;
     }
     vlc.audio.volume =vlcSound;
     document.getElementById("vlc_sound").value=vlcSound;
    }
    //全屏
    function screenFull(){
      vlc.video.toggleFullscreen()
    }
    </script>
    </head>
    <body onload="initPlayUrl()" >
    <!--[if IE]>
       <object type='application/x-vlc-plugin' id='vlc' events='True'
           classid='clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921' width="720" height="540">
              <param name='mrl' value='' />
              <param name='volume' value='50' />
              <param name='autoplay' value='false' />
              <param name='loop' value='false' />
              <param name='fullscreen' value='false' />
        </object>
    <![endif]-->
    <!--[if !IE]><!-->
        <object type='application/x-vlc-plugin' id='vlc' events='True' width="720" height="540">
            <param name='mrl' value='' />
            <param name='volume' value='50' />
            <param name='autoplay' value='true' />
            <param name='loop' value='false' />
            <param name='fullscreen' value='false' />
        </object>
    <!--<![endif]-->
    <br><br>
    <input type="button" value="&nbsp;播&nbsp;&nbsp;&nbsp;&nbsp;放&nbsp;"  onclick="repeatPlay();" id="play_button">&nbsp;&nbsp;
    <input type="button" value="&nbsp;停&nbsp;&nbsp;&nbsp;&nbsp;止&nbsp;"  onclick="stopPlay();" id="stop_button">&nbsp;&nbsp;
    <input type="button" value="&nbsp;静&nbsp;&nbsp;&nbsp;&nbsp;音&nbsp;"  onclick="noSound();" id="no_sound">&nbsp;&nbsp;
    <input type="button" value="&nbsp;减少音量&nbsp;"  onclick="soundChange(-10);">&nbsp;&nbsp;
    <input type="button" value="&nbsp;增大音量&nbsp;"  onclick="soundChange(10);">&nbsp;&nbsp;
    <input type="button" value="&nbsp;全&nbsp;&nbsp;&nbsp;&nbsp;屏&nbsp;"  onclick="screenFull();">

    &nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

    <font color="red" size="2">音量:</font><input type="text" id="vlc_sound" style=" 40px;color: blue">
    <br>
    <font color="red" size="2">总时长:</font><input type="text" id="vedio_length" style=" 65px;color: blue">&nbsp;
    <input type="text" id="current_video_time" style=" 65px;color: blue">

    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

    <font color="red" size="2">跳转:</font><input type="text" id="change_length" style=" 100px;color: blue">
    <span style="color: blue;font-weight: normal;font-size: 14px">秒</span>
    &nbsp;
    <input type="button" value="确定" id="time_change" disabled="disabled" onclick="changeNewBeginTime();">
    </body>
    </html> 

    结果页面显示的是乱码,中文无法显示。根据网上的解决办法找了半天没解决,可能我的情况跟他们的不太一样,正一筹莫展之际我使用wget -S http://localhost  抓取看了一下,显示如下

    wget -S http://localhost
    --2012-12-17 17:15:29--  http://localhost/
    正在解析主机 localhost (localhost)... 127.0.0.1
    正在连接 localhost (localhost)|127.0.0.1|:80... 已连接。
    已发出 HTTP 请求,正在等待回应... 
      HTTP/1.1 200 OK
      Date: Mon, 17 Dec 2012 09:15:29 GMT
      Server: Apache/2.2.22 (Ubuntu)
      Last-Modified: Wed, 12 Dec 2012 01:06:00 GMT
      ETag: "547b-b1-4d09d66dacd24"
      Accept-Ranges: bytes
      Content-Length: 177
      Vary: Accept-Encoding
      Keep-Alive: timeout=5, max=100
      Connection: Keep-Alive
      Content-Type: text/html; charset=GB2312
    长度: 177 [text/html]
    正在保存至: “index.html.1”


    100%[==============================================>] 177         --.-K/s   用时 0s    


    2012-12-17 17:15:29 (26.4 MB/s) - 已保存 “index.html.1” [177/177])

    突然发现charest=GB2312,而文件中是UTF-8.于是果断修改UTF-8为GB2312.刷新一看,果然解决。

  • 相关阅读:
    ffmpeg rtmp推流 视频转码
    java日志发展史 log4j slf4j log4j2 jul jcl 日志和各种桥接包的关系
    nginx stream 流转发,可以转发rtmp、mysql访问流,转发rtmp、jdbc请求
    java web http 转https 通过nginx代理访问
    linux 服务器磁盘挂载
    novnc 通过websockify代理 配置多点访问
    linux 文件服务 minio 安装部署配置
    AOP实现原理,手写aop
    java 泛型
    JAVA反射getGenericSuperclass()用法
  • 原文地址:https://www.cnblogs.com/shulianghe/p/3724141.html
Copyright © 2011-2022 走看看