C#实现中文的简体和繁体的相互转换

2017年1月24日 没有评论

最近在收集唐诗,准备提供给小朋友联系韵律。但是网络上搜索出来的全唐诗,都是繁体中文的表示,所以想着是否可以有库来进行转换。

搜索出来发现用C#来实现的话,还是比较简单的。

首先在工程中添加Microsoft.VisualBasic 引用,然后就可以写2个通用方法了。

// 字符串简体转繁体
public static string ToTraditionalChinese(string strSimple)
{
string strTraditional = Microsoft.VisualBasic.Strings.StrConv(strSimple, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0);
return strTraditional;
}
// 字符串繁体转简体
public static string ToSimplifiedChinese(string strTraditional)
{
string strSimple = Microsoft.VisualBasic.Strings.StrConv(strTraditional, VbStrConv.SimplifiedChinese, 0);
return strSimple;
}

需要特别说明的是,从繁体转换为简体基本上没有什么问题,但是因为存在多个繁体字对应一个简体字的情况,所以从简体转换为繁体就存在一些错误。具体的解决方法就得使用勘误表来特别处理。

好在衣服自己洗的需求只是繁体转简体,没有这个问题。

分类: 一句话 标签: ,

Win10 UWP 默认控件样式和模板

2017年1月17日 没有评论

很多时候发现设计给出的文档,系统默认的控件并不能直接使用。对于复杂的控件,可以新写一个自定义控件,但是对于一些很简单的控件,就想在系统默认的控件基础上通过调整样式来实现。

那么我们就需要知道系统默认控件的布局和样式是如何定义的,幸好微软已经给出了 UWP 控件的默认样式和模板。

https://msdn.microsoft.com/zh-cn/library/windows/apps/mt299122.aspx

大家一定要好好保存喔,方便查询使用。

分类: 一句话 标签:

win10修复UWP程序无法联网的问题

2017年1月3日 没有评论

衣服自己洗的办公机已经有一段时间不能使用UWP程序上网了,包括微软自带的应用商店,然而win32桌面程序却没有这个问题,很是恼火。

于是自己写了一个测试程序,发现代码会崩溃在

Windows.Networking.Connectivity.NetworkInformation.GetHostNames();

后来在某一个偶然的时机,发现如果开着 Fiddler的情况下,应用商店就可以正常访问了,太神奇了。这么看起来似乎是系统代理的问题导致,但是其它的UWP程序仍然无法上网。

在网上搜索了一番,各种所谓的重置答案都试过,均没有效果。何况,工作中可是直接和UWP相关,这个出问题了那简直是要了老命了。

趁着元旦放假的工夫,想在家尝试解决,后来还是放弃了。突然灵光一闪,听说windows在每次大的更新后,都会重置系统的一些设置,就寻思着从这块下手。

好在上次下载的14393的系统镜像还在,就以升级的方式重新安装了一遍系统,各位同学这里可要记住,千万要勾选“保留个人文档和程序”选项。升级后,终于恢复正常了。剩下的例如文件关联之类的都是小问题,以后慢慢回填就可以了。

回想起整个事情,可能出现的情况,感觉问题可能是出现在科学上网上面,以前曾经把玩过一段时间的蓝灯程序,后来购买了shadowsocks后,就卸载了蓝灯。估计是卸载没有完全卸载干净导致。

虽然代价有点大,但好歹也是终于修复了这个问题。

分类: 一句话 标签:

Firefly控制自带的Led灯

2017年1月3日 没有评论

在前面的文章中,衣服自己洗提及为了打开自带的Led灯,而不得不安装golang的环境,后来在官网上发现了他们有开源python版本的库:pyFireflyP,开源地址为https://github.com/T-Firefly/pyFireflyP。

对于linux系统而言,很多都已经自带python了,而且安装也比golang容易的多。

从github上clone或者下载这个包,然后进入到目录下安装:

cd pyFireflyP
sudo python setup.py install

我的Firefly运行后会报错,显示FireflyP do not support <Rockchip (Device Tree)>! 应该是系统内核没有正确赋值,按照官方的说法,只需要修改setup.py文件,把 fplat=check_plat() 直接改成:fplat=’rk3288’,然后再次运行安装即可。

对于测试,运行 sudo python demo/gpio_test.py,就可以看到Firefly上的蓝灯和黄灯来回交替显示的效果了。

对于内核没有正确赋值的问题,估计我的板子是早期生产的,其信息并没有及时更新。至于现在是否已经更新不得而知。

当然,对于官网wiki上的另外一个设备写入的方法:

echo 1 >/sys/class/leds/firefly:blue:power/brightness  //蓝灯亮

在最近的固件里并不能实现,早期的固件确实是有。这里衣服自己洗真心是要狠狠地吐槽一番,完全没有考虑到像我们这样的小白,以为所有的人都会自己编译固件。

上面提及的2种方法,虽然都是调用GPIO,但是是相互独立的,如果一起使用的话,可能会出现意想不到的后果。不过就目前来看,应该没有这个风险。

分类: Firefly, 日常 标签: ,

Golang安装和配置

2017年1月3日 没有评论

在说正事前,衣服自己洗需要说下Golang和Go的区分,事实上他们是同一个东西,仅仅是因为Go这个单词太常见了,在编程语言的描述中,为避免混乱,就改用Golang而已。这个问题我曾经也迷惑过。

Firefly 新版本的固件里,居然把板子上的灯默认给关闭了,也无法直接检索到了。这真是一个糟糕的设计。

为了打开Firefly上的灯,需要采用GPIO驱动,但是目前从上层软件搜索来看,论坛里一个可用的库却是采用Go来编写的。

那么问题就来了,首先我们需要安装Go的环境。

我们先来说windows上的安装,很简单,从官网上下载对应的windows版本,然后一路下一步安装即可。安装完成后,添加系统环境变量,GOPATH和GOROOT,这个变量在我自己理解来看,GOROOT是指Go的安装目录,默认的是C:\Go,然后GOPATH就真的是go想要搜索的其它资源的路径,支持多个路径。有点类似于C++里的工程include的味道。

对于linux系统,Google官方并没有给出编译好的版本,所以就需要我们下载源码自己安装了。衣服自己洗下载的是1.7.4的源码,放在/pi/go目录,进入src目录,运行 all.bash,显示出错,提示没有1.4的Tree,网上搜索了一下,发现go的新版本安装所需要的环境是需要先安装go1.4才可以的。

于是只好先下载go1.4的源码到/pi/go这个位置,再次运行 all.bash文件,由于是在香蕉派上运行,整个过程花了大概18分钟的样子,在安装后,还会自动运行测试程序,很遗憾,香蕉派上测试程序有的并没有测试通过,检查了/pi/go/bin目录下,已经生成了 go 和 fmt 文件,干脆拉倒。

修改 ~/.profile文件并添加2行代码如下:

export GOROOT=/pi/go
export PATH=$PATH:$GOROOT/bin

保存重启。然后再下载1.7.4版本的源码到原来的位置完成替换,然后再次运行/pi/go/src/all.bash,最好添加sudo。又是经过快20分钟的编译和安装。

写了个简单的hello world程序,go build hello.go,还是可以正确显示的。

至此,基本的运行环境就准备完毕了。

分类: 日常 标签: ,

Ubuntu修改挂载点名称

2016年12月19日 没有评论

由于FireFly是放在单位一直做代码编译的监视工具,衣服自己洗就寻思着要不要顺便做点下载什么。家里的香蕉派一来有小朋友在,另外是因为实际情况并发效果不太好,很容易就死机了。

接上USB扩展坞,接上移动硬盘后,3个分区系统都顺利识别出来,寻思着移动硬盘应该是带不起来,所以USB有额外的提供电源。

一路安装了uget和aira2,顺便也搞了一个webui-aria2网页版,这些以后有机会再提吧。

下载的时候,发现移动硬盘的挂载点是中文的,有点担忧是否有影响。就寻思着怎么修改这个挂载点,首先发现无法像windows系统那样,直接通过右键菜单来修改,最简单的方法就是接回windows系统,然后修改为英文名称。

遗憾的是,在window上修改后,再次连上FireFly,发现还是显示原来的内容。拔掉移动硬盘,检查挂载点,发现在 /media/ubuntu/下果然还有3个文件,删除之。

再次插入U盘,发现还是显示中文的挂载点,在/media/ubuntu/目录下又出现了3个中文名称。奇怪的不要不要的。

后来才偶然间发现,原来挂载点信息保存在 /etc/fstab 文件中,修改里面的挂载点名称,顺利解决了。

分类: 一句话, 日常 标签: ,

win10下解决U盘可以识别但资源管理器无法显示

2016年12月19日 没有评论

衣服自己洗的U盘,工作中被反复使用,一般说来,关闭所有的相关文件夹后就直接拔出来了,一般说来也没有什么大问题,也从未有过U盘无法识别的问题。

最近突然就出现了U盘插入后,系统托盘会显示图标,但是资源管理器里却不实现盘符的情况,我以为是U盘的寿命到了,但是发现在其它电脑上是可以正常识别使用的,可以排除U盘的原因。

我不清楚是什么原因导致的,可能是因为前几天使用某数字软件清除了U盘历史记录,也可能是因为U盘在另外一个Ubuntu系统上使用过。网上的资料要么是已经过时的,要么是没有效果的。

分析看来,操作系统应该是已经知道有这么一个设备,只是没有显示出来。经过好几天的搜索,最后终于发现了一个比较友好的解决方法。

首先插入U盘,从开始菜单打开设置,选择“设备”,再选择“已连接设备”,在窗体的右边应该就会显示出刚才插入的U盘,选中其图标点击“删除设备”。然后拔出U盘,再重新插入。这时系统就会重新识别出U盘,资源管理器里也恢复正常了。

放一个图作为结尾吧。

分类: 日常 标签: ,

解决移动 硬盘和U盘在ubuntu 下无法写入的问题

2016年12月13日 没有评论

今天带了块移动硬盘到单位,接入到Firefly后,发现无法向设备内写入文件,换成U盘也是一样的问题。插入后系统可以很快地识别出来,但就是只读的。可以浏览,写入就不用想了。

因为Firefly是基于arm架构的,不知道是不是和这个有关系,网上搜索的结果也各种各样,但是都没有什么效果。

最后,找到了一个解决问题的方法了。

sudo apt-get install ntfs-config

sudo ntfs-config

这个时候系统会弹一个窗体出来,勾选对应的移动硬盘,并允许写入就可以了。实际上,ntfs-config在Firefly上安装是没有问题的,配置的时候报了一堆的python错误,不过看起来没有什么大问题。

分类: Firefly, 一句话 标签: ,

SQL Server 备份数据库时提示“无法打开备份设备”

2016年12月5日 没有评论

在备份SQL Server 数据库时候,想要将备份文件放在非系统盘目录下,结果提示错误信息:

备份对于服务器“服务器名”失败。无法打开备份设备’f:\abc.bak’。出现操作系统错误5(拒绝访问。)。

一直不知道是什么原因,每次都是偷懒拉倒,还是备份到SQL Server默认的那个层级很深的目录里。今天就去搜索了下,网上说是SQL Server的一个Bug 坑。

解决方法是:不能将备份文件放在盘符的根目录下,必须放在一个非根目录下,否则就会报错。

试了一下,果然就解决了,太神奇了。

分类: 日常 标签:

win10 锁屏界面无法登陆

2016年11月9日 没有评论

最近发现win10的锁屏界面居然无法登陆系统了,只能重启解决。如果在锁定屏幕前有未保存的内容,就很悲催了。

衣服自己洗开始还以为是偶然的现象,后来在多台电脑上都有发现。而且是锁定的时间越长,其概率就越大,例如第二天早上上班。

由于微软自win10以后就采用小步慢走的方式,导致网上的帖子里有很多过时的讨论,有价值的不多。后来经过一番搜索,找到的解决方法如下:

进入设置->个性化->锁屏界面,关闭Windows聚焦,并且关闭“在锁屏界面上从Windows和Cortana获取花絮、提示等”,然后重启系统。

经过这样的设置后,果然就好了。

好景不长,问题又出现了,只是说概率比以前要小很多。看来关闭聚焦有效果但没有根治。

衣服自己洗不太死心呀,晚上锁定电脑后,第二天必须要强制关机重启,对于强迫症来说,太过于惨烈了。

再经过翻墙后的搜索,终于找到了彻底解决问题的思路,问题的原因是由于微软输入法的原因导致的。大家可以在任务管理器里找到ChsIME.exe这个进程。

衣服自己洗用的是QQ拼音,完全不在乎微软自带的输入法。迅速杀掉这个进程。为了稳妥起见,重命名了这个文件作为备份。

世界终于清净了,运行了一段时间后,再也没有发现过这样的情况。虽然后面又陆续有过几次windows 更新,不知道微软是否有修复这个问题。

分类: 一句话, 日常 标签: