Erlang中文模式匹配疑问

问题描述

新建一个名为data.txt,格式为utf8无bom的,里面只是飞机二字,然后用以下程序测试抛出异常: -module(demo).-compile(export_all).test_cn() -> {ok, Fp} = file:open("data.txt", [read, {encoding, utf8}]), {ok, Content} = file:read_line(Fp), file:close(Fp), io:format("~w~n", [get_id_by_name(Content)]).get_id_by_name("飞机") -> %% 当然可以转为get_id_by_name([39134,26426])方法处理 %% 但是实际项目却是数十个,甚至数百个,这样做就不现实了 plane;get_id_by_name("火车") -> train. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%exception error: no function clause matching demo:get_id_by_name([39134,26426]) in function demo:test_cn/0请教下,这个是怎么回事?如何可以做得到中文匹配呢?问题补充jigloo 写道

解决方案

把demo.erl也要存成utf8格式,然后试下这个io:format("~w~n", [get_id_by_name(unicode:characters_to_binary(Content, unicode, utf8))]).

时间: 2024-10-27 23:17:12

Erlang中文模式匹配疑问的相关文章

Erlang(起个中文名:易浪)不能错过的盛宴

                评:erlang(起个中文名:易浪),在穿戴设备技术,云技术,大数据,游戏服务器等等高并发分布式必然大有用处,这个语言必火!-传统语言除了java和c,其他的必然会死去,今后一定会出现新的类erlang语言,必热!                                                                                               ------------深圳-linux内核-罗(2014-06

Erlang面向分布与并发的编程语言

问题描述 面对一个新的事务,我们本性都会充满好奇,可是作为程序员,很多时候对于新的语言我都充满了抵触:这个新东西值得学习么?它会不会让我抛弃我的旧爱?它文档丰富么?其是不是很难理解?它的前景如何?...等等,相信大家跟我有一样的苦恼.但是,请听我说!我们是程序员,我们走在技术革新的最前沿.用户的产品,体验是通过我们来产生!我们不能畏缩不前,我们的固步自封,就是我们的公司,乃至整个我们的行业的停滞不前!口号可能有些响亮,但是认真思考,我相信朋友们一定有所感悟.Erlang是什么Erlang是什么是

Erlang入门(一)

  读erlang.org上面的Erlang Course四天教程1.数字类型,需要注意两点 1)B#Val表示以B进制存储的数字Val,比如 7> 2#101.5 二进制存储的101就是10进制的5了 2)$Char表示字符Char的ascii编码,比如$A表示65 2.比较难以翻译的概念--atom,可以理解成常量,它可以包含任何字符,以小写字母开头,如果不是以小写字母开头或者是字母之外的符号,需要用单引号包括起来,比如abc,'AB' 3.另一个概念--Tuple,有人翻译成元组,可以理解

php中文汉字替换与模式匹配的问题!!请大家必看!

汉字|问题|中文 作者: bluedoor原帖地址:http://www.anbbs.com/anbbs/index.php?f_id=3&page=1 这两天正在做一个关键字加亮显示的程序,写好的程序在本地测试也跑得好好的,可是一上去页面就出现一堆一堆的乱码,别说加亮了,简直就是没的看! 我就找错误,找来找去,发现英文没有问题,遇到汉字容易出问题,有的时候遇到汉字必出问题. 总结一下: 当使用模式匹配的时候,如:preg_match_all($pat,--)与preg_replace($pat

技巧:PHP关于中文汉字替换与模式匹配的问题

这两天正在做一个关键字加亮显示的程序,写好的程序在本地测试也跑得好好的,可是一上去页面就出现一堆一堆的乱码,别说加亮了,简直就是没的看! 我就找错误,找来找去,发现英文没有问题,遇到汉字容易出问题,有的时候遇到汉字必出问题. 总结一下: 当使用模式匹配的时候,如:preg_match_all($pat,--)与preg_replace($pat,--)-- 容易出问题的情况如下: preg_match_all("/(汉字)+/ism","我是汉字,看你把我怎么着!"

php中文汉字替换与模式匹配的问题

这两天正在做一个关键字加亮显示的程序,写好的程序在本地测试也跑得好好的,可是一上去页面就出现一堆一堆的乱码,别说加亮了,简直就是没的看! 我就找错误,找来找去,发现英文没有问题,遇到汉字容易出问题,有的时候遇到汉字必出问题. 总结一下: 当使用模式匹配的时候,如:preg_match_all($pat,--)与preg_replace($pat,--)-- 容易出问题的情况如下:preg_match_all("/(汉字)+/ism","我是汉字,看你把我怎么着!",

Erlang中的模块与模式匹配介绍_Erlang

模块是Erlang的基本代码单元,erl文件编译后以.beam作为扩展名,采用UTF8字符集,.erl文件示意如下: -module(模块名,与存放模块的文件名相同) -export([方法名/输入参数的个数]) 复制代码 代码如下: Method1( {a,b,c})->a*b*c; Mehtod2({d,e})->d-e. 模块属性有两种类型:预定义型和用户定义型.   Erlang中用于代表函数的数据类型被称为fun,相当于python中的lambda,一般用于 1)      对列表里

话说模式匹配(4) scala里的赋值语句都是模式匹配吗?

先抛个问题,下面的语句是否都合理(编译通过),哪些会引起模式匹配? scala> val a = 100 scala> val A = 100 scala> val a@b = 100 scala> val (a,b) = (100,200) scala> val (a,B) = (100,200) //第二个变量大写 scala> val Array(a,b) = Array(100,200) scala> val Array(a,B) = Array(100,

HTTP协议header中Content-Disposition中文文件名乱码

在做文件下载时当文件名为中文时经常会出现乱码现象.  参考文章 http://blog.robotshell.org/2012/deal-with-http-header-encoding-for-file-download/  本文就详细给出案例来解决这一乱码问题以及还一直未解决的一个疑问欢迎大家一起来探讨.  大体的原因就是header中只支持ASCII所以我们传输的文件名必须是ASCII当文件名为中文时必须要将该中文转换成ASCII.  转换方式有很多  方式一将中文文件名用ISO-885